枫辰 发表于 2012-7-14 20:42:03

cpu读指令问题

cpu在读二进制的时候怎么知道哪些是指令哪些是数据?怎么知道指令长度是多少?

1144290241 发表于 2012-7-14 20:42:04

这个是计算机组成原理的知识。当cpu读取指令的时候,每个指令都会耗费一个周期,而这个周期会包含取指周期和执行周期,取指周期去的就是指令

090704020006 发表于 2012-7-14 23:01:44

通过数据总线,控制总线,

大头石 发表于 2012-7-15 10:30:29

CPU处理数据通过三种总线完成,数据总线、地址总线、控制总线。当指令按照某种格式书写时,也就是分开了指令数据地址,分别通过总线将编译好的指令交给cpu处理

1144290241 发表于 2012-7-15 10:39:02

每个指令的执行都会花费一个指令周期(不同的指令的指令周期可能不同,但是都是cpu周期的整数倍)

meiyoudao 发表于 2012-7-15 11:35:49

通过指令总线进来的,是指令.通过数据线进来的是数据.

2809196927 发表于 2012-7-20 15:42:35

1144290241 发表于 2012-7-15 10:36 static/image/common/back.gif
这个是计算机组成原理的知识。当cpu读取指令的时候,每个指令都会耗费一个周期,而这个周期会包含取指周期和 ...

顶!!!!!!!!!!!!!!!!!!!!

Tzdner_C 发表于 2012-7-20 17:31:06

CPU执行指令的时候,只会跟着eip寄存器去走,eip指向哪里,哪里就是指令。。。数据即使指令,指令即是数据,关于指令长度。。。若你学过机器码,也叫硬编码你就知道。每个汇编指令都有编码,一条汇编由操作码和操作数组成。。。当CPU执行指令的时候有三个工站,一个读,一个解析,一个执行,   解析工站就能根据操作码计算出指令长度。。。。。。。。。。。举个例子,push ebp       这条指令的编码是0x55..   通过解析就能知道这是一个字节。。。
页: [1]
查看完整版本: cpu读指令问题