鱼C论坛

 找回密码
 立即注册
查看: 3404|回复: 7

急求帮助

[复制链接]
发表于 2011-8-15 09:52:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
CPU执行call指令是push到栈中的是当前的ip的值还是下一条指令的值,我debug过好像是下一条的值但是小甲鱼老师讲的是当前ip的值,究竟答案是什么,求助!!!:'(
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-15 10:18:17 | 显示全部楼层
你想想,为什么要把指令copy到栈呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-15 10:21:13 | 显示全部楼层
保存call指令的下一条指令地址 方便使用ret指令返回:D
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-15 11:26:09 | 显示全部楼层
本帖最后由 javanetwork 于 2011-8-15 11:27 编辑

说是当前IP也没错,说是下一条指令也没错,这个问题我一开始也不明白,请听我,慢慢道来

CPU执行指令的过程:根据CS:IP 传送地址-->读取指令-->IP值增加当前指令的长度-->执行指令

在小甲鱼视频里面:刚通过地址总线传送地址要读取指令的时候,IP就已经变了,这个应该是错误

call指令是压栈call的下一条指令的偏移地址,这个没错

但是,读取call指令后,IP已经指向call的下一条指令了,所以压栈的是当前IP也没错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-15 11:46:14 | 显示全部楼层
玩语言的阿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-15 11:54:43 | 显示全部楼层
其实当cpu执行call指令时,call指令的下一条指令已经进入指令缓冲区,ip也就指向了它(call指令的下一条指令),所以说压入的是当前ip值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-15 19:06:05 | 显示全部楼层
ip始终指向下一条指令。
取出当前指令之后,该指令进入指令缓冲器,ip会立即指向下一条指令。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-15 19:58:13 | 显示全部楼层
应该是当cpu取出当前指令后,ip的值,就是下一条指令的地址了, 所以说,当前指令执行时ip里面是下一条要自执行的地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 22:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表