问题描述
NULL EQU 0 ; Constants
MB_DEFBUTTON1 EQU 0
MB_DEFBUTTON2 EQU 100h
IDNO EQU 7
MB_YESNO EQU 4
extern _MessageBoxA@16 ; Import external symbols
extern _ExitProcess@4 ; Windows API functions,decorated
global Start ; Export symbols. The entry point
section .data ; Initialized data segment
MessageBoxText db "Do you want to exit?",0
MessageBoxCaption db "MessageBox 32",0
section .text ; Code segment
Start:
push MB_YESNO | MB_DEFBUTTON2 ; 4th parameter. 2 constants ORed together
push MessageBoxCaption ; 3rd parameter
push MessageBoxText ; 2nd parameter
push NULL ; 1st parameter
call _MessageBoxA@16
cmp EAX,IDNO ; Check the return value for "No"
je Start
push NULL
call _ExitProcess@4
我的问题是:
在调用 esp
以将堆栈恢复到以前的状态后,我们不应该向 MessageBoxA
reg 添加适当的值吗?如果是这样,则在调用 push MessageBoxCaption
时必须将多少添加到 esp
寄存器 (4?)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)