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



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

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

АЛУ и указатели

Окончания цифeрных команд воздействуют на состояние 8 флагов. Большая часть сих флагов может быть рассчитана после выполнения арифметических команд с участием процедур относительного перехода, а также с помощью функции INTO (прерывание по переполнению). Действие циферных команд на флаги изображено внизу.

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

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


назад далее