我正在构建一个没有任何宏的 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 32 位 SP3 英语上),但DefWindowProc
它可以编译,但在执行时会中断。有人知道为什么吗?
谢谢各位的支持。
PS.:我正在使用 masm32