鱼C论坛

 找回密码
 立即注册
查看: 3364|回复: 6

监测点2.3

[复制链接]
发表于 2012-2-9 23:13:35 | 显示全部楼层 |阅读模式
1鱼币
监测点2.3--详细解答-《汇编语言》-课后题

   mov不是不改变ip的值吗?怎么是4次呢?

最佳答案

查看完整内容

设计到2.10中8086PC读取和执行指令的变换,经过图示可以看出,输入输出控制电路先将MOV的数据放到内存中,这时IP已经改变,然后又将内存中的指令提出来,经过执行控制器进行执行,这样IP又发生变化,所以是变化四次。而为什么是0则是因为sub ax,ax 意思为ax=ax-ax结果为0即ax=0,那么jmp ax的意思就是把ax的数值输入到ip中,所以最后ip为0.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-9 23:13:36 | 显示全部楼层

设计到2.10中8086PC读取和执行指令的变换,经过图示可以看出,输入输出控制电路先将MOV的数据放到内存中,这时IP已经改变,然后又将内存中的指令提出来,经过执行控制器进行执行,这样IP又发生变化,所以是变化四次。而为什么是0则是因为sub ax,ax 意思为ax=ax-ax结果为0即ax=0,那么jmp ax的意思就是把ax的数值输入到ip中,所以最后ip为0.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-9 23:41:32 | 显示全部楼层
mov是不改变,但CPU将mov指令读入指令缓冲器后,会自动将ip+3,然后才执行刚才放在指令缓冲器中的mov指令;CPU每读取一段指令后,都会自动增加ip值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-10 16:05:31 | 显示全部楼层
ㄓ国Ψ—小八 发表于 2012-2-9 23:41
mov是不改变,但CPU将mov指令读入指令缓冲器后,会自动将ip+3,然后才执行刚才放在指令缓冲器中的mov指令; ...

谢谢啊{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-10 16:09:19 | 显示全部楼层
ㄓ国Ψ—小八 发表于 2012-2-9 23:41
mov是不改变,但CPU将mov指令读入指令缓冲器后,会自动将ip+3,然后才执行刚才放在指令缓冲器中的mov指令; ...

我是新手,再问下啊。但是,不是3次吗?还有啊,为什么最好ip是0,不太懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-10 22:27:42 | 显示全部楼层
疾风飘流 发表于 2012-2-10 16:38
设计到2.10中8086PC读取和执行指令的变换,经过图示可以看出,输入输出控制电路先将MOV的数据放到内存中, ...

太感谢了:hug:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-12 01:01:28 | 显示全部楼层
mov本身不会改变,但执行指令后会改变IP的值,以便于cpu执行下一条指令,否则如果执行本条指令后IP不变化,结果可想而知……就像刘能讲话一样,一 一 一了半天,二都出不来了,想想看……?{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 18:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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