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

我的博客

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

[2012-08-31 14:17] CPU在读取指令的时候,为什么有时读2个,有时读3个?

在35页的小结中第三点:
(3)8086CPU的工作过程:
1、从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器
2、IP指向下一条指令
...

这里看到CPU是一条指令一条指令的读的,从之前章节的图例来看,读完一条指令后接着就执行了,那么,是不是意味着CPU每读一次必然是一条完整的指令?像JAVA一条指令是由“;”结束的,CPU是否也是用类似";"来判断一条指令已经结束?
评论次数(3)  |  浏览次数(522)  |  类型(疑问) |  收藏此文  | 

[  游客   发表于  2012-08-31 15:12  ]

不是的,你看到的“;”是字符层面上的,而机器指令是2进制层面的。你的源代码经过编译器的编译才能变成机器码,这个过程才会判断你源代码的起止,到了cpu指令级别已经处理完毕了,这时候的每条指令占多少字节,应该有信息的,至于深层的细节,我也不知道了。

[  游客   发表于  2012-08-31 15:15  ]

应该与源代码中指令操作符有关系,特定的操作符号集合决定了这个指令将被编译成多少个字节码,当然也包括指令符号本身。

[  doing1984   发表于  2012-09-03 08:21  ]

谢谢游客,反正它一次读一条指令就对了,不知道书后面有没有具体解释

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