首页
社区
课程
招聘
[求助]关于EBP和ESP的疑问
发表于: 2008-5-15 12:32 3655

[求助]关于EBP和ESP的疑问

2008-5-15 12:32
3655
如果ebp=100的话,那么
mov  eax,dword ptr ss:[ebp+8]

mov  eax,dword ptr ss:[100+8]
应该等同对吧?

那么如果esp也是100的话,那么
mov  eax,dword ptr ss:[100+8]

mov  eax,dword ptr ss:[esp+8]

也应该等同吧。毕竟后面只是一个偏移量啊。

这是我的理解,有什么不对吗?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
2
好像没有

文章太短
2008-5-15 13:00
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
如果理解正确的话,那么
push ebp
mov  ebp,esp
mov  eax,dword ptr ss:[ebp+8]
add  eax,1
…………
…………
…………

中为什么不直接用mov  eax,dword ptr ss:[esp+8],这样的话至少不用再这么麻烦更改EBP啊?
2008-5-15 13:18
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
4
ESP会随着PUSH 和POP变动

这种方式通过多占用一个寄存器,然后你就可以用同一个相对偏移(相对于EBP)访问同一个变量了。

从编码的角度看这样做比较直观而且易于记忆
从编译器的编写角度来看,这样做比较容易调试生成的结果是否正确。相对地,可供选择的寄存器减少,意味着更多的内存寻址以及读写操作,程序的执行效率可能会低一点
2008-5-15 15:09
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
酱紫啊……
2008-5-15 15:25
0
游客
登录 | 注册 方可回帖
返回
//