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



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

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

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

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

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

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


назад далее