首页
社区
课程
招聘
[讨论]ESP 和 EBP 的关系(以及对at&t和intel 的asm讨论)
2008-11-22 23:57 12726

[讨论]ESP 和 EBP 的关系(以及对at&t和intel 的asm讨论)

2008-11-22 23:57
12726
收藏
点赞7
打赏
分享
最新回复 (28)
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk 2008-11-24 12:56
26
0
观看高手表演。

最近也对CPU很感兴趣
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
magicfx 2008-11-24 15:36
27
0
从OllyDBG里贴过来的一段典型Stack frame建立过程:

1.Arguments被PUSH到栈里。
2.呼叫函式,将返回位址PUSH到栈里。
3.当函式开始执行时,EBP被PUSH到栈里。
4.EBP被设定成跟ESP一样的值。
5.接下来要看有多少个局部变数要放到栈里,就把ESP的位址减去某个数值,以挪出空间来存放。

push ebp
mov ebp, esp
add esp, -0B4

第三行的-0B4是负数?
也就是说OllyDBG会用负号表示负数
而不是用补数?
雪    币: 247
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pengmo 2008-11-24 16:45
28
0
masm10里面自带有很多函数代码 不知道是不是你想看的源码
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
北极狐狸 7 2008-11-25 08:34
29
0
pengmo 的意思是masm32的inc和库吧,我说的源码是编译器的源码,并非是其编程的时候调用的函数源码。
呵呵,大概你是误会了。

关于cpu,我没有什么认识,大致只知道不同的的cpu所支持的机器码是不同的。就是说同样的一串二进制数字,在不同的cpu中会被解释成不同的指令。

mik,书呆子。或者有知道的哪位,能不能讲讲有关如何计算一串机器指令所执行的时间。不考虑系统的原因,只考虑cpu和代码的执行时间。我想应该可以计算的,但是不知道具体如何实现...
游客
登录 | 注册 方可回帖
返回