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



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 (знак трансдукции): Ежели в результате сложения проделывается перенос из старшего бита, символ трансдукции взводится; в другом случае флаг переноса сбрасывается. При вычитании символ переноса возводится, ежели осуществляется заем в старший байт достигнутого результата; при отсутствии заема символ обновляется. Следует учитывать, что при появлении симптоматичного свитча SC != VJ (флаг заполнения). Флаг переноса АР может употребляться для воспроизведения неимеющего знака восполнения.

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


назад далее