鱼C论坛

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

鱼C老师请进

[复制链接]
发表于 2011-12-20 19:03:48 | 显示全部楼层 |阅读模式

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

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

x
在汇编语言 检测点2.3中,我不懂为什么最后IP的值得为0。
mov ax,bx
这里是把bx送到ax,然后IP自加指令长度,这时候CPU修改了1次IP的值
sub ax,ax
这里是把ax-ax的值送到ax中,然后IP自加指令长度,这时候CPU修改了1次IP的值
jmp ax
这里是把ax的值设置为IP的值,也是CPU修改了一次IP的值
执行完jmp ax后,物理地址应该是定位在段地址+偏移地址0,这时候执行完后,IP不会加上这条语句的指令长度吗?为什么最后IP的值是0?还有老师我的分析有没有错呢?请指正下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-20 19:06:47 | 显示全部楼层
我的问题是说执行完jmp ax后,物理地址应该是定位在段地址+偏移地址0,这时候执行完后,这时候按照你给的答案是CPU也修改了1次IP的值,这也是最后一次修改了,为什么最后IP的值是0呢?还有这3行代码我的分析理解有没有错误呀,有的话请指正!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-20 20:30:40 | 显示全部楼层
先读取指令,IP加上指令长度,然后执行指令,IP改为ax的值0。书里可能讲的不是很清楚。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-20 20:33:08 | 显示全部楼层
汇编都是先读取指令,然后IP改变,然后执行指令的,后面的一些跳转指令也是这样的,如call。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-21 09:40:03 | 显示全部楼层
我知道,他是把指令存在缓冲区里,然后IP+1,然后再执行这条指令,但我用DEBUG程序调试了下,-T,一条一条的执行,最后发现IP的变化只有3次,所以我才有点不解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-21 12:16:26 | 显示全部楼层
读取mov ax,bx
IP指向sub ax,ax   IP改变第一次
执行mov ax,bx

读取IP指向的sub ax,ax
IP指向jmp ax       IP改变第二次
执行sub ax,ax

读取jmp ax
IP指向下一个内存地址,但你看不到,因为debug -t后返回的是执行后的状态
执行jmp ax     IP变为ax的值0,     这是你看到的第三次改变,实际IP寄存器的状态改变4次了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-21 21:28:48 | 显示全部楼层
读取mov ax,bx
IP指向sub ax,ax   IP改变第一次
执行mov ax,bx
   此时bx的内容就等于ax的内容  因为是传送指令将BX送给AX
读取IP指向的sub ax,ax
IP指向jmp ax       IP改变第二次
执行sub ax,ax
此时ax=0  因为SUB是减法指令AX-BX  AX=0

读取jmp ax
IP指向下一个内存地址,但你看不到,因为debug -t后返回的是执行后的状态
执行jmp ax     IP变为ax的值0,     这是你看到的第三次改变,实际IP寄存器的状态改变4次了
将AX送给IP ip=ax=0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-22 09:39:24 | 显示全部楼层
谢谢大家的帮助,只是我感觉你们说的还是不到位,我再分析下,请你们指正下
mov ax,bx
这时候CPU修改了1次IP的值,然后才执行命令才把bx里的数据放到ax里。(因为指令都是先放在指令缓冲器里,然后IP自加,然后才执行相应的指令,所以是IP先自加,然后再把bx里的数据放到ax里)
sub ax,ax
这时候CPU修改了1次IP的值,然后才执行命令这里是把ax-ax的值送到ax中。
jmp ax
这时候CPU修改了1次IP的值,然后才执行命令jmp ax指令。
但是执行jmp ax 就是把ax的值放到ip中,所以这时候又修改了1次IP的值,把IP=0,所以最后IP的值是0

各位觉得我这样解释,是不是行的通或是不是正确的理解了这几行代码?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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