我正在编写一个没有任何宏的Windows汇编程序。因此,我下载了一个使用宏的程序,并将其转换为“纯”汇编代码。
然而,我在这里遇到了一个问题。有一个标签
然而,我在这里遇到了一个问题。有一个标签
@@:
,我不理解,还有一个跳转jne @F
,我也不明白。这两个符号是什么意思?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 32位SP3英文版上硬编码内存地址,但对于DefWindowProc
,虽然编译通过,但执行时会出现错误。有人知道原因吗?
感谢大家的支持。
PS:我正在使用masm32。
DefWindowProc
没有起作用...不知道为什么:( - jyz