Программирование на Ассемблере


Функции ввода-вывода для стандартных устройств


Известно, что кодировка символов , принятая по умолчанию, отличается для WINDOWS 95, WINDOWS NT. Тип кодировки задается буквой A в конце функции для однобайтной кодировки и буквой W для 2-х байтной. При создании программ на языке АССЕМБЛЕР необходимо учитывать это различие.  

Для программного определения типа установленной системы используется функция GetVersion:

DWORD GetVersion(VOID)

Функция возвращает номер версии и подверсии установленной системы

Для всех платформ младшее слово содержит номера версии (младший байт номер версии, старший – номер подверсии в 16 –ой системе счисления)

Для различения платформ ОС используется старший бит и младший байт, которые принимают значения, приведенные в табл. 13.1.

Таблица 13.1. Типы операционных систем

Платформа

Старший бит



Младший байт

Windows NT

0

3 или 4

Windows 95

1

4

Win32s, Windows 3.1

1

3

Для Windows NT и  Win32s, оставшиеся биты старшего слова задают номер разработчика, для Windows 95 – резервируются.

Пример использования функции на С++:

DwVersion = GetVersion();

 

dwWindowsMajorVersion =  (DWORD)(LOBYTE(LOWORD(dwVersion)));

dwWindowsMinorVersion =  (DWORD)(HIBYTE(LOWORD(dwVersion)));

if (dwVersion < 0x80000000)                // Windows NT

    dwBuild = (DWORD)(HIWORD(dwVersion));

else if (dwWindowsMajorVersion < 4)        // Win32s

    dwBuild = (DWORD)(HIWORD(dwVersion) & ~0x8000);

else         // Windows 95 --

    dwBuild =  0;

К функциям ввода – вывода для стандартных устройств относятся:

·        функция MessageBox для вывода диалогового окна с заданной информацией и заданными кнопками;

·        функции для работы с консолью

По умолчанию в качестве стандартных устройств ввода используется клавиатура, а вывода -монитор. Выводимую информацию можно разделить на информацию, соответствующую штатной работе программы, и информацию, соответствующую реакции на ошибки. По умолчанию для обоих типов информации используется монитор. Допускается переназначение стандартных устройств. Ниже приведены наиболее распространенные константы и функции[18].



Содержание раздела