天天看点

计算机组成原理之指令系统

r## 4.1指令系统的发展与性能要求

4.1.1指令系统的发展

计算机的程序是由一系列的机器指令组成的。指令就是计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机指令分为:微指令、机器指令和宏指令。

微指令:微程序级命令,属于硬件

宏指令:由若干机器指令组成的软件指令,属于软件

机器指令:介于两者之间,简称指令,每一条指令可完成一个独立的算术运算或逻辑运算操作。

指令系统(指令集):一台计算机中所有机器指令的集合。表现计算机性能,格式与功能不仅影响机器的硬件结构,还有系统软件;指令是一台计算机的硬件与低层软件的接口

系列计算机:基本指令系统相同、基本体系结构相同的一列计算机。时间和器件不同,结构性能上有差距。

CISC:复杂指令系统计算机,研制周期长,大量指令利用率低

RISC:精简指令系统计算机,

4.1.2指令系统的性能要求

完备性:用汇编语言编写程序是,指令系统提供的指令足够使用,不需要用软件实现。

有效性:用指令系统编写的程序能高效率的运行,一般说功能强、指令系统完善其有效性就会更好

规整性:对称性、匀齐性、指令格式和数据格式的一致性。

对称性:指令系统中所有的寄存器和存储器单元都可同等对待,
所有的指令都可使用各种寻址方式
         匀齐性:一种操作性质的指令可以支持多种数据类型,如算术运算:
支持字节、字、十进制、单双浮点。
         指令格式和数据格式的一致性:指令长度和数据长度有一定关系,
一方便处理和存取。如:指令长度和数据长度通常是字节长度的整数倍。
           

兼容性:计算机间基本结构和基本指令系统相同,只能“向上兼容”

4.1.3 低级语言与硬件结构的关系

汇编语言依赖于计算机的硬件结构和指令系统。

高级语言不依赖

计算机组成原理之指令系统

4.2指令格式

指令字:机器指令使用机器字来表示的,一条指令的机器字就是指令字,称指令

格式:

操作码字段OP | 地址码字段A

4.2.1操作码

指令的操作码OP表示该指令应进行什么性质的操作,指令不同操作码字段的编码不同,一种编码代表一种指令;001 加法 110 取整

指令系统的规模决定了操作码字段的位数: 2的n次方个指令表示需要n个操作码

4.2.2地址码

根据一条指令中操作数地址个数不同,可将其分为几地址指令。

1) 零地址指令

2)一地址指令:只有一个地址码,指定一个操作数,另一个操作数地址是隐含的。

AC<—(AC)OP(A)

op表示操作性质,如加、减、乘除

(AC)表示累加寄存器AC中的数

(A)表示内存中地址为A的存储单元中的数,或运算器中地址为A的通用寄存器中的数;

<—:表示把操作结果传送到指定的地方。

注意:地址码字段A指明的是操作数的地址,而不是操作数本身

3)二地址指令(双操作数指令):地址段A1和A2,分别指明参与操作的两个数在内存中或运算器中通用寄存器的地址,A1兼作存放操作结果的地址。数学含义:

A1<-----(A1)op(A2)

操作数的物理位置有分为三种类型:

存储器存储器型指令(SS):访问内存的指令格式,从内存一个单元取出放入另内存一个单元

寄存器寄存器(RR):机器执行指令时,需要多个通用寄存器或个别专用

从一个到另一个,执行速度快,不需要访问内存

寄存器-存储器(RS):访问内存单元和寄存器

4)三地址指令 操作数地址:A1,A2,A3 数学含义:

A1 <—(A1)OP(A2)

A1为被操作数地址,源操作数地址

A2操作数地址,终点操作数地址

A3存放操作结果的地址。

这三种通常指定为运算器中通用寄存器的地址,目的:加快指令执行速度。

4.2.3指令字长度

指令字长度:一个指令中包含二进制代码的位数

机器字长:计算机能直接处理的二进制数据的位数,决定了计算机的运算精度。与主存单元的位数一致。

单字长指令:指令字长度等于机器字长度的指令

半字长指令:

双字长指令:

4.2.4指令助记符

计算机组成原理之指令系统

4.2.5 指令格式举例

1.八位微型计算机的指令格式

单字长指令:   操作码
  双字长指令:   操作码      操作数地址
  三字长指令:   操作码     操作数地址1      操作数地址2
           

双或三字长指令包含操作码和地址码,由于内存按字节编址,所以但字长指令每执行一条指令后,指令地址+1,双或三字指令每执行一条指令时,必须从内存连续读2或3个字节代码,所以指令地址要+2或+3,多字节指令不利于提高机器速度。

2.MIPS R4000指令格式

字长32位,字节寻址。 指令数量少,通用寄存器32个,算术指令格式:

OP   rs  rt   rd   shamt  funct             R型
           

OP字段—操作码,指定一条指令的基本操作 6位

rs字段–指定第一个源操作数寄存器,最多有32个寄存器 5位

rt字段----指定第2个源操作数寄存器,最多有32个寄存器 5位

rd字段—指定存放操作结果的目的数寄存器,最多32 5位

shamt字段------ 移位值,用于移位指令 5位

funct字段----函数码,指定R型指令的特定操作

在MIPS中所有算术运算,数据必须放在通用寄存器中,

访问存储器(取数或存数)需要使用数据传送指令。此时的指令格式称为I型(立即数)指令,格式:

OP       rs      rt        常数或地址(address)   I型
           6为   5位    5位      16位
           

16位字段address提供取字指令(IW),存字指令(SW)访问存储器的基值地址码(位移量)

保持指令格式基本一致可降低硬件复杂程度,例如:R与I前3个字段长度相等,名称一样;I型格式第四个字段与R型后三个字段的长度相等。

3.ARM的指令格式

ARM是字长32位的嵌入式处理机,

计算机组成原理之指令系统

4.Pentium指令格式

计算机组成原理之指令系统
计算机组成原理之指令系统

4.3 操作数类型

计算机组成原理之指令系统
计算机组成原理之指令系统

4.4 指令和数据的寻址方式

存储器既可以用来存放数据、又可以用来存放指令,当某个操作数或某条指令存放在某个存储单元时,存储单元的编号,就是该操作数或指令在存储器中的地址。

在存储器中,操作数或指令字写入或独处方式:地址指定方式、相联存储方式、堆栈存取方式。

计算机在内存中采用地址指定方式。此时形成操作数或指令地址的方式,称为寻址方式。 寻址方式分为:指令寻址方式和数据寻址方式,

冯诺依曼结构计算机中,内存中指令的寻址和数据的寻址交替进行

哈佛型计算机这指令和数据寻址是分开的。

  • 这两者那种好呢?都是啥意思呢?

4.4.1指令的寻址方式

1.顺序寻址方式(PC实现)

由于指令地址在内存中按顺序安排,从存储器取出一条指令,执行,接着重复这种顺序执行过程。使用程序计数器(PC)来计数指令的顺序号,该顺序号就是指令在内存中的地址。

2.跳跃寻址方式(由程序来实现)

程序计数器:存放下一条要存储指令的地址,

本条指令给出下条指令的地址。

4.4.2操作数基本寻址方式

定义:形成操作数的有效存储地址的方法。

1.隐含寻址

在指令中隐含着操作数的地址

2.立即寻址

指令的地址字段指出的不是操作数的地址,而是操作数本身

3.直接寻址

操作数的地址直接给出而不需要经过某种变换。

特点:在指令格式的地址字段中直接指出操作数在内存的地址A。

4.间接寻址

相对于直接寻址而言的,指令地址字段中的形式地址A不是操作数D的真正地址,而是操作数地址的知识器

5.寄存器寻址

当操作数不在内存中,而是在CPU的通用寄存器中时,可采用寄存器寻址方式。

6.寄存器间接寻址

指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。

7.偏移寻址

直接寻址和寄存器间接寻址方式的结合

相对寻址:隐含引用的专用寄存器是程序计数器(PC),即EA=A+(PC),它是当前PC的内容加上指令地址字段中A的值。

基址寻址:被引用的专用寄存器含有一个存储器地址,地址字段含有一个相对于该地址的偏移量

变址寻址:地址域引用一个主存地址,被引用的专用寄存器含有对那个地址的正偏移量(为了重复操作的完成提供一种高效机制)

8.段寻址

继续阅读