汇编网首页登录博客注册
beichenyibei的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
文章收藏
友情链接

[2010-08-16 11:13] 检测点2.3

题目:下面的3条指令执行后,CPU几次修改IP?都是在什么时候?最后IP中的值是多少?
mov ax,bx
sub ax,ax
jmp ax

ANS:修改了4次。第一次是将“mov ax,bx”读取到指令缓冲器后,IP+3;第二次是将“sub ax,ax”读取到指令缓冲器后,IP+3;第三次是讲“jmp ax”读取到指令缓冲器后,IP+2;第四次是执行“jmp ax”,IP中的值为为ax中数据。
=========
改正:上面前两次的ip其实都是+2,不是+3。特此改正。
评论次数(2)  |  浏览次数(602)  |  类型(汇编作业) |  收藏此文  | 

[  12sunfeng34   发表于  2010-08-16 15:15  ]

mov ax,bx  sub ax,bx 读取指令缓冲器后为什么是 IP+3

[  beichenyibei   发表于  2010-08-17 09:54  ]

不好意思,我错了。
我以为像“mov 寄存器,数据”这种ip都是加三,就想当然的以为“mov 寄存器,寄存器”也是ip+3了,这种应该是ip+2才是。
谢谢您的指正,不胜感激。不过,为什么这种的指令长度只要2个字节就够了呢?

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码