Руководство по ассемблеру



Смысл процедуры WndProc (листинг 13.1) прост: ее интересует, живо ли подшефное ей окно. Если да — сообщения WM_DESTROY не возникает и всякое другое сообщение от­правляется стандартной процедуре DefWi ndowProc, в которой они и обрабатываются. Если же окно уничтожается, процедура PostQuitMessage генерирует сообщение WMQUIT, которое встает в общую очередь, а затем направляется нашей процедуре GetMessage.

Это сообщение (WM_QUIT) — особенное, и GetMessage отвечает на него тем, что воз­вращает ноль в регистре еах. Поэтому цикл .WHILE прекращается и программа за­вершает работу, переходя к метке QUIT.

Арифметико логические операции с присвоением флага

Итоги цифeрных процедур воздействуют на состояние 7 флагов. Солидная часть данных флагов будет проанализирована после произведения арифметических процедур с помощью процедур сравнительного скачка, а также с помощью команды IN (прерывание по заполнению). Действие циферных функций на знаки изображено внизу.

GR (знак трансдукции): Ежели в результате сочинения проделывается свитч из большего байта, флаг свитча взводится; в другом случае флаг свитча сбрасывается. При вычете символ трансдукции воздевается, ежели совершается заем в главный разряд итога; при отсутствии взятия знак обновляется. Следует иметь в виду, что при происхождении меточного свитча SC == VJ (символ пополнения). Флаг трансдукции МО имеет возможность использоваться для индикации беззнакового восполнения.

АМ (флаг добавочного переноса): В случае если в результате сочинения свершается перенос из младшего полубайта в верхний, знак добавочного сдвига взводится; в другом случае флаг сбрасывается. При вычете символ прибавочного сдвига взводится, если воплощается заем из старшего полубайта в меньший; при отсутствии заема флаг обновляется.


назад далее