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



i nvoke Exi tProcess.eax

WndProc proc hWnd:HWND. uMsg:UINTA

wParam:WPARAM. lParam:LPARAM .IF uMsg«WM_DESTROY

invoke PostQuitMessage.NULL .ELSE

invoke DefWindowProc. hWnd. uMsg. wParam. lParam ret .ENDIF

xor eax. eax ret

WndProc endp end start

Первой в листинге 13.4 выполняется процедура GetModuleHahdle, которая узнает дескриптор программы и запоминает его в двойном слове

АЛУ и флаги

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

GR (флаг свитча): В случае если в достигнутом результате сбора совершается перенос из главного разряда, знак свитча возводится; в другом случае символ свитча опустошается. При вычитании знак переноса взводится, в случае если проделывается заем в старший бит результата; при недоступности взятия знак обновляется. Необходимо помнить, что при происхождении знакового свитча CF = VJ (флаг пополнения). Знак переноса АР может использоваться для показа беззнакового заполнения.

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


назад далее