AkeyMaker 2015-10-29 03:55 采纳率: 0%
浏览 1753

关于汇编中Ret指令执行后ESP的指向问题

附上源码
.386
.model flat,stdcall
.code
main proc USES ecx edx
push ebp
mov ebp,esp
mov eax,[ebp + 8]
pop ebp
ret 4

main endp
end main
以下是执行后的堆栈记录:
EBP ESP 指令 Remark
0018FA60 0018F814 程序执行前
0018FA60 0018F810 PUSH ECX

0018FA60 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了么???
请帮忙理解下,感谢!

  • 写回答

1条回答 默认 最新

  • lm_whales 2015-10-29 05:37
    关注

    代码不全,很难看出来

    评论

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?