- •Введение
- •Сведения об архитектуре процессоров intel 80х86 и операционной системе windows, необходимые для программирования на ассемблере
- •1.1. Программно доступные регистры
- •1.2. Организация памяти [5]
- •1.2.1. Сегментация
- •1.2.2. Дескрипторы сегментов
- •1.2.3 Адресное пространство режима реального адреса
- •1.2.4. Адресное пространство защищенного режима [6]
- •1.2.5. Виртуальное адресное пространство
- •1.2.6. Способы адресации операндов
- •Регистровый операнд
- •Непосредственный операнд
- •1.3. Организация ввода – вывода
- •1.3.1. Консоль
- •1.3.2. Графический интерфейс пользователя
- •1.4. Система команд
- •Команды пересылки данных
- •Команды ввода/вывода
- •Команды целочисленной арифметики
- •Логические операции
- •Операции сдвигов
- •Команды передачи управления
- •Командные прерывания
- •Команды управления процессором
- •Команды обработки последовательности кодов
- •Команды для работы со стеком
- •2. Описание языка ассемблера
- •2.1. Алфавит языка ассемблера
- •2.2. Лексемы
- •2.3. Имена
- •2.3.1. Ключевые слова
- •2.3.2. Имена пользователя
- •2.4. Константы
- •2.4.1.Целые числа
- •2.4.2. Вещественные числа
- •2.4.3. Символьные и строковые константы
- •2.5. Структура строки языка ассемблера
- •2.5.1. Структура строки, содержащей машинную команду
- •2.6.3. Директивы упрощенного определения сегментов
- •2.6.4. Директивы определения сегментов и групп
- •2.6.5. Директивы описания процедуры
- •2.6.6. Директивы определения данных
- •2.6.7. Директивы определения имен
- •2.6.8. Директивы внешних ссылок
- •2.6.7. Директивы управления трансляцией
- •2.6.8. Макросредства
- •2.7. Операции в выражениях
- •2.7.1. Арифметические операции
- •2.7.2. Логические операции
- •2.7.3. Операции отношения
- •2.7.4. Операции, возвращающие значения
- •2.7.5. Операции присваивания атрибута
- •Трансляция программ
- •. Компиляция
- •3.2. Компоновка
- •Библиографический список
- •Функции api
- •1. Функция GetModuleHandleA
- •2. Функция LoadIcon
- •3. Функция LoadCursor
- •4. Функция Register Class
- •5. Функция CreateWindowExA
- •6. Функция ShowWindow
- •7. Функция UpdateWindow
- •8. Функция GetMessage
- •9. Функция DispatchMessage
- •10. Функция ExitProcess
- •11. Функция BeginPaint
- •12. Функция TextOutA
- •13. Функция EndPaint
- •Описание структур, определенных в фале win32.Inc
- •1. Структура wndclass
- •2. Структура сообщения
- •3. Структура paintstruct
- •Продолжение прил. 4
- •4. Структура rect
- •Формат командной строки и ключи транслятора tasm32
- •Формат командной строки и ключи компоновщика tlink32
- •Оглавление
6. Функция ShowWindow
В справочной системе win32sdk прототип функции представлен следующим образом:
BOOL ShowWindow(
HWND hwnd, // дескриптор окна
int nCmdShow // состояние окна
);
Функция ShowWindow определяет, каким обpазом должно быть показано окно. Это зависит от параметра nCmdShow, который может иметь следующие значения:
SW_HIDE скрывает окно и активизирует другое окно;
SW_MAXIMIZE максимизирует определяемое окно;
SW_MINIMIZE минимизирует определяемое окно и активизирует следующее по порядку подчиненности;
SW_RESTORE активизирует и отображает окно. Если окно минимизировано, Windows восстанавливает его первоначальные размеры и позицию;
Продолжение прил. 3
SW_SHOW активизирует окно и отображает в текущем размере и позиции;
SW_SHOWMAXIMIZED активизирует окно и отображает его
как максимизированное;
SW_SHOWMINIMIZED активизирует окно и отображает его
как минимизированное;
SW_SHOWMINNOACTIVE отображает окно как минимизированное окно.
Активное окно остается активным;
SW_SHOWNA отображает окно в текущем состоянии, активное окно
остается активным;
SW_SHOWNOACTIVATE отображает окно в предыдущем размере и
позиции, активное окно остается активным;
SW_SHOWNORMAL активизирует и отображает окно. Если окно
минимизировано или максимизировано, Windows
восстанавливает его первоначальные размеры и
позицию.
Прикладная программа должна определить этот параметр при представлении окна впервые.
Параметр hwnd идентифицирует окно.
Возвpащаемое функцией значение - не нуль, если окно было pанее видимым, нуль - если оно было pанее спpятанным.
7. Функция UpdateWindow
Прототип:
BOOL UpdateWindow(
HWND hwnd // дескриптор окна
);
Функция UpdateWindow обновляет изображение окна, посылая сообщение WM_PAINT оконной процедуре, если область модификации окна не пуста.Если область модификации пуста, сообщение не посылается. В качестве параметра функции передается дескриптор окна.
Продолжение прил. 3
8. Функция GetMessage
В справочной системе win32sdk функция представлена следующим образом:
BOOL GetMessage(
LPMSG lpMsg, // указатель на структуру MSG
HWND hWnd, // дескриптор окна, принимающего сообщение
UINT wMsgFilterMin, // минимальное значение сообщения
UINT wMsgFilterMax // максимальное значение сообщения
);
Функция GetMessage считывает сообщение из очеpеди сообщений пpикладной задачи. Значения сообщений находятся внутри определенного диапазона. Сообщение помещается в указанную параметром lpMsg структуру.
Паpаметp hWnd определяет окно, которому передается сообщение. Если в качестве этого параметра передается нуль, сообщение относится ко всем окнам приложения.
Параметр wMsgFilterMin определяет самое низкое значение сообщения, которое будет обрабатываться данной функцией.
Параметр wMsgFilterMax определяет самое высокое значение сообщения, которое будет обрабатываться данной функцией.
Если функция отыскивает сообщение, отличное от WM_QUIT, возвращается значение ИСТИНА, в пpотивном случае возвращается нуль. Если при выполнении функции обнаружена ошибка, возвращаемое значение - единица.
