Windows程序集怀疑 – x86

前端之家收集整理的这篇文章主要介绍了Windows程序集怀疑 – x86前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个没有任何宏的 Windows程序集程序.所以我下载了一个使用宏的程序,我将其转换为“纯”汇编代码.

但是我在这里面临一个问题.有一个标签@@:我不明白,也是一个跳跃的@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 32bits SP3上),但对于DefWindowProc,它会编译,但在执行时会中断.有人知道为什么吗?

谢谢你们的支持.

PS.:我正在使用masm32

解决方法

@@是一个匿名的本地标签.您可以在文件中包含许多内容.jne @F表示在当前位置之前跳转到最近的@@.

猜你在找的Windows相关文章