问题描述
- 关于汇编中Ret指令执行后ESP的指向问题
-
附上源码
.386
.model flat,stdcall
.code
main proc USES ecx edx
push ebp
mov ebp,esp
mov eax,[ebp + 8]
pop ebp
ret 4main endp
end main
以下是执行后的堆栈记录:
EBP ESP 指令 Remark
0018FA60 0018F814 程序执行前
0018FA60 0018F810 PUSH ECX0018FA60 0018F80C PUSH EDX
0018FA60 0018F808 PUSH EBX
0018F808 0018F808 MOV
0018F808 0018F808 MOV
0018FA60 0018F80C POP EBP
0018FA60 0018F810 POP EDX
0018FA60 0018F814 POP ECX
0018FA60 0018F81C Ret 4这里有个疑问Ret4执行后也就是ESP+4,地址应该是0018F818,为什么这里ESP指向了0018F81C,这不是ESP+8了么???
请帮忙理解下,感谢!
解决方案
代码不全,很难看出来
时间: 2024-12-02 19:46:17