帮忙看一下谢谢
重新整理了下
lea 0x4(%esp),%ecx 当前esp的值是0xbfc5489c 这个操作相当于 ecx的值是0xbfc548a0
and $0xfffffff0,%esp 这个使esp的值变成0xbfc54890
pushl 0xffffffc(%ecx) 这个把0xbfc5489c压入堆栈 目前esp 为0xbfc5488c
push %ebp 压原来ebp进堆栈 目前esp为0xbfc54888
mov %esp,%ebp 栈基地址指向新地方 ebp为0xbfc54888
push %ecx 压入原来的ecx 目前esp为0xbfc54884
sub $0x24,%esp 开辟9个槽位的堆栈空间 目前esp为0xbfc54860
movl $0x809fb28,0xfffffff4(%ebp) 在0xbfc5487c位置存入 0x809fb28
可是问题是为什么在gdb下,我用x/i 0xbfc5487c 命令显示的不是0x809fb28?
汇编多年没碰,gdb没用过?能帮我下?谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可能是我gdb用的不对
后面的 mov 0xfffffff4(%ebp) ,%eax
我用x/i $eax 显示的确是0x809fb28
但是用x/i 0xbfc5487c显示却是不同的结果