`
xieyaxiong
  • 浏览: 38934 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

指令系统

 
阅读更多

 

机器指令

 

计算机钥匙是由于机器本身存在一种语言,它既能理解人的意图,又能被机器自身识别。机器语言是由一条条语句构成的,每一条语句又能准确表达某种语义例如,它可以命令机器做某种操作,指出参与操作的数或其他信息在什么地方等。计算机就是连续执行每一条机器语句而实现全自动工作的。人们习惯把每一条机器语言的语句称为机器指令,而又将全部机器指令的集合称为机器的指令系统。因此机器的指令系统集中反映了机器的功能。

 

 

 

 

指令的一般格式

指令是由操作码和地址码两部分组成的。

1.操作码

操作码用来指明该指令所要完成的操作,如加法、减法、传送、移位、转移等。通常,其位数反映了机器的操作种类,也即机器允许的指令条数,如操作码占7位,则该机器最多包含128条指令。

操作码的长度可是固定的,也可以是变化的。

2.地址码

地址码用来指出该指令的源操作数的地址(一个或两个)、结果的地址以及下一条指令的地址。这里的“地址”可以是主存的地址,也可以是寄存器的地址,甚至可以是I/O设备的地址。

 

 

 

 

指令字长

指令字长取决于操作码的长度、操作数地址的长度和操作数地址的个数。不同机器的指令字长是不相同的。

早期的计算机指令字长、机器字长和存储字长均相等,因此访问某个存储单元,便可取出一条完整的指令或一个完整的数据。这种机器的指令字长是固定的,控制方式比较简单。随着计算机的发展,存储容量的增大,要求处理的数据类型增多,计算机的指令字长也发生了很大的变化。一台机器的指令系统可以采用位数不相同的指令,即指令字长是可变的,如单字长指令、多字长指令。控制这类指令的电路比较复杂,而且多字长指令多次访问存储器才能取出一条完整的指令,因此使CPU速度下降。为了提高指令的运行速度和节省存储空间,通常尽可能把常用的指令(如数据传送指令、算逻运算指令等)设计成单字长或短字长格式的指令。

 

 

 

 

 

操作数类型和操作类型

 

操作数类型

机器中常见的操作数类型有地址、数字、字符、逻辑数据等。

(1)地址

地址实际上也可看做是一种数据,在许多情况下要计算操作数的地址。这时,地址可被认为是一个无符号的整数。

(2)数字

计算机中常见的数字有定点数、浮点数和十进制数。

(3)字符

在应用计算机时,文本或者字符串也是一种常见的数据类型。由于计算机在处理信息过程中不能以简单的字符形式存储和传送,因此普遍采用ASCII,它是很重要的一种字符编码。

(4)逻辑数据

计算机除了作算术运算外,有时还需作逻辑运算,此时n01的组合不是被看做算术数字,而是被看做逻辑数。

 

 

 

 

 

操作类型

不同的机器,操作类型也是不同的,但几乎所有的机器都有以下几类通用的操作。

1.数据传送

数据传送包括寄存器与寄存器、寄存器与存储单元、存储单元与存储单元之间的传送。如从源到目的之间的传送、对存储器读和写、交换源和目的的内容、置1、清零、进栈、出栈等。

2.算术逻辑操作

3.移位

4.转移

在多数情况下,计算机是按顺序执行程序的每条指令的,但有时需要改变这种顺序,此刻可采用转移类指令来完成。转移指令按其转移特征又可分为无条件转移、条件转移、跳转、过程调用与返回、陷阱(Trap)等几种。

5.输入输出

对于I/O单独编址的计算机而言,通常设有输入输出指令,它完成从外设中的寄存器读入一个数据到CPU寄存器内,或将数据从CPU的寄存器输出至某外设的寄存器中。

6.其他

其他包括等待指令、停机指令、空操作指令、开中断指令、关中断指令、置条件码指令等。

 

 

 

 

 

 

 

寻址方式

寻址方式是指确定本条指令的数据地址以及下一条将要执行的指令地址的方法,它与硬件结构紧密相关,而且直接影响指令格式和指令功能。

寻址方式分为指令寻址和数据寻址两大类。

1.指令寻址

指令寻址比较简单,它分为顺序寻址和跳跃寻址两处。

顺序寻址可通过程序计数器PC1,自动形成下一条指令的地址;跳跃寻址则通过转移类指令实现。

2.数据寻址

数据寻址方式种类较多,在指令字中必须设一字段来指明属于哪一个寻址方式。指令的地址码字段通常都不代表操作数的真实地址,把它称为形式地址,记作A。操作数的真实地址称为有效地址,记作EA,它是由寻址方式和形式地址共同来确定的。

(1)立即寻址

(2)直接寻址

(3)隐含寻址

(4)间接寻址

(5)寄存器寻址

(6)寄存器间接寻址

(7)基址寻址

(8)变址寻址

(9)相对寻址

(10)堆栈寻址

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics