.


:




:

































 

 

 

 





.386p.model flat, stdcalloption casemap:none includelib.\masm32\lib\kernel32.libincludelib.\masm32\lib\user32.lib include.\masm32\include\windows.inc include.\masm32\include\kernel32.incinclude.\masm32\include\user32.inc.data newhwnd dd 0hInst dd 00000000hszTitleName db 'Window Application',0szClassName db 'ASMCLASS32',0msg MONMSGSTRUCT <?>; wc WNDCLASS <?>; .codestart: Invoke GetModuleHandle,0; hInstanseMov [hInst], eax Mov [wc.style], CS_HREDRAW+CS_VREDRAW+CS_GLOBALCLASS; Mov [wc.lpfnWndProc], offset WndProc; Mov [wc.cbClsExtra], 0Mov [wc.cbWndExtra], 0Mov eax, [hInst]Mov [wc.hInstance], eaxInvoke LoadIcon,0,IDI_APPLICATION; ; Mov [wc.hIcon], eax Invoke LoadCursorA,0,IDC_ARROW; Mov [wc.hCursor], eax Mov [wc.hbrBackground], COLOR_BACKGROUND+1Mov dword ptr [wc.lpszMenuName], 0Mov dword ptr [wc.lpszClassName], offset szClassName; ;Invoke RegisterClassA,offset wc; Push 0Push [hInst]; Push 0Push 0Push CW_USEDEFAULT; Push CW_USEDEFAULT; Push CW_USEDEFAULT; yPush CW_USEDEFAULT; xPush WS_OVERLAPPEDWINDOW; Push offset szTitleName; Push offset szClassName; Push 0; Call CreateWindowEx; mov [newhwnd], eax; invoke ShowWindow,[newhwnd],SW_SHOWNORMAL; invoke UpdateWindow, [newhwnd]; msg_loop:; invoke GetMessage,offset msg, 0,0,0 cmp ax, 0je end_loop invoke TranslateMessage, offset msg invoke DispatchMessage, offset msgjmp msg_loopend_loop: invoke ExitProcess, 0 WndProc proc uses ebx edi esi, hwnd:DWORD, wmsg:DWORD, wparam:DWORD, lparam:DWORD Cmp [wmsg], WM_DESTROYJe wmdestroyCmp [wmsg], WM_KEYDOWNJe wmkeydownInvoke DefWindowProcA,[hwnd],[wmsg],[wparam],[lparam]; Jmp finishwmkeydown:cmp [wparam], VK_ESCAPEje wmdestroy; Escape jmp finishwmdestroy:invoke PostQuitMessage, 0invoke ExitProcess, 0; finish: retWndProc endpend start

hInstanse . , , .. . GetModuleHandle ( ), , 0, . , .. .

Mov [wc.lpfnWndProc], offset WndProc

, . , , . , - .

LoadIcon, , 0 . , , , , . , .. .

RegisterClass, , .

CreateWindowEx.

HWND CreateWindowEx(DWORD dwExStyle, // LPCTSTR lpClassName, // LPCTSTR lpWindowName, // DWORD dwStyle, // int x, // int y, // int nWidth, // int nHeight, // HWND hWndParent, // HMENU hMenu, // HINSTANCE hInstance, // LPVOID lpParam // ( ));

. .

. WM_DESTROY, , . , , escape, , . , , . "" , , . , , .





:


: 2015-10-01; !; : 386 |


:

:

.
==> ...

1682 - | 1474 -


© 2015-2024 lektsii.org - -

: 0.012 .