Я создаю программу сборки Windows без каких-либо макросов.Поэтому я скачал программу, которая использовала макросы, и я преобразовал ее в «чистый» ассемблерный код.
Однако здесь я столкнулся с одной проблемой.Есть ярлык @@:
, который я не понимаю, а также прыжок jne @F
, который я не получил.Что это за 2 символа?
MyWndProc:
push ebp
mov ebp, esp
cmp DWORD PTR [ebp+12], 2 ;WM_DESTROY=2
jne @F
push ecx
push NULL
mov dword ptr ecx, 7e42ca5ah ;address of PostQuitMessage
call ecx
pop ecx
@@:
push DWORD PTR [ebp+20]
push DWORD PTR [ebp+16]
push DWORD PTR [ebp+12]
push DWORD PTR [ebp+8]
call DefWindowProc
;mov dword ptr edx, 7e42c17eh
;call edx
leave
ret 16
Также для PostQuitMessage
API я мог бы жестко закодировать адрес памяти (на английском языке WinXP 32bits SP3), но для DefWindowProc
он компилируется, но прерывается при выполнении.Кто-нибудь знает почему?
Спасибо за поддержку, ребята.
PS .: Я использую masm32