| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4004 人关注过本帖
标题:CPU如何取得下一条指令
只看楼主 加入收藏
rediums
Rank: 2
等 级:新手上路
威 望:3
帖 子:367
专家分:0
注 册:2007-7-29
结帖率:100%
收藏
 问题点数:0 回复次数:8 
CPU如何取得下一条指令
X86指令的长短是不同的,有的一个字节长,有的两个字节甚至更长,那么在指令指针IP指向一个内存单元的时候,CPU是如何取得一条完整的指令呢?比如指令是取一个字节还是几个字节?
搜索更多相关主题的帖子: CPU 指令 
2008-10-07 20:53
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
我觉得这个问题很有意思.
要弄明白,看来得去查阅有关的<微机原理与结构>之类的书.
但我有个猜测:
CPU在取指阶段,有可能分几个步骤进行.
第一步是,先读取一个字节,判断属于哪种类型的指令,或者说,先从第一个字节得知指令的长度;
第二步,如果指令是多个字节的,则继续往下读取;
最后才确实了指令的类型(或长度).
得到指令的类型之后,就要根据这条指令的要求,读取这条指令后面的数据,共同组成一行代码.
例,mov ax,1000  对应的字节就是:B80010  这里的B8就是指令的类型(或长度),再根据这条指令的要求,将B8后面的00 10 两个字节当作数据,共同组成了完整的代码行.
2008-10-07 23:27
rediums
Rank: 2
等 级:新手上路
威 望:3
帖 子:367
专家分:0
注 册:2007-7-29
收藏
得分:0 
如果是32位的数据总线,取一个字节是不是太浪费了,还有24条数据总线空闲,如果先取4个字节,然后把没用的丢弃不是更好吗?

2008-10-07 23:39
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
回复 3# rediums 的帖子
呵呵~~高.  是4字节对齐了.
2008-10-07 23:52
蓝色神话
Rank: 2
等 级:论坛游民
威 望:1
帖 子:404
专家分:24
注 册:2006-5-11
收藏
得分:0 
应该是指令字节对齐。
2008-10-08 10:21
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
这个得看cpu里的指令解释器怎么工作了……
2008-10-08 12:51
netsolo
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2008-3-6
收藏
得分:0 
这个和 CPU 的内部寄存器大小和外部数据总线宽度有关
2008-10-08 14:00
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:0 
指令有6个域,有固定的顺序。 具体请看罗聪的一篇文章,讲的很透彻。 强烈推荐精读。地址

http://www.

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2008-10-10 16:23
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
[bo][un]你们都要疼我哦[/un] 在 2008-10-10 16:23 的发言:[/bo]

指令有6个域,有固定的顺序。 具体请看罗聪的一篇文章,讲的很透彻。 强烈推荐精读。地址

http://www.


强!

应该有个格式 否则 反汇编的程序怎么写的?
2008-10-10 16:29
快速回复:CPU如何取得下一条指令
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032657 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved