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

第七章 指令系统

7.1 机器指令

  • 指令的格式是什么
    • 操作码 地址码 寻址方式
  • 指令的字长
    • 固定字长、可变字长

一、指令的一般格式

在这里插入图片描述

1. 操作码 映机器做什么操作
(1) 长度固定

用于指令字长较长的情况,RISC

(2) 长度可变

操作码分散在指令字的不同字段中

(3) 扩展操作码技术

操作码的位数随地址数的减少而增加

在这里插入图片描述

2. 地址码
(1) 四地址

在这里插入图片描述

A1 第一操作数地址
A2 第二操作数地址
A3 结果的地址
A4 下一条指令地址

4 次访存
寻址范围 2^6 = 64

(2) 三地址

若 PC 代替 A4

在这里插入图片描述

4 次访存
寻址范围 2^8 = 256

(3) 二地址

若 A3 用 A1 或 A2 代替

在这里插入图片描述

4 次访存

寻址范围 2^12 = 4 K

(4) 一地址

若ACC 代替 A1(或A2)

在这里插入图片描述

2 次访存
寻址范围 224 = 16 M

二、指令字长

在这里插入图片描述

1. 指令字长固定

指令字长 = 存储字长

2. 指令字长可变

按字节的倍数变化

小结

  • 当用一些硬件资源代替指令字中的地址码字段后
    • 可扩大指令的寻址范围
    • 可缩短指令字长
    • 可减少访存次数
  • 当指令的地址字段为寄存器时
    • 可缩短指令字长
    • 指令执行阶段不访存

7.2 操作数类型和操作类型

一、操作数类型

地址 无符号整数
数字 定点数、浮点数、十进制数
字符 ASCII
逻辑数 逻辑运算

二、数据在存储器中的存放方式

字节编址,数据在存储器中的存放方式(存储字长64位,机器字长32位)

1. 从任意位置开始存储

在这里插入图片描述

优点:不浪费存储资源
缺点:除了访问一个字节之外,访问其它任何类型的数据,都可能花费两个存储周期的时间。读写控制比较复杂。

2. 从一个存储字的起始位置开始访问

在这里插入图片描述

优点:无论访问何种类型的数据,在一个周期内均可完成,读写控制简单。
缺点:浪费了宝贵的存储资源

3. 边界对准方式——从地址的整数倍位置开始访问

在这里插入图片描述

数据存放的起始地址是数据长度(按照编址单位进行计算)的整数倍
本方案是前两个方案的折衷,在一个周期内可以完成存储访问,空间浪费也不太严重。

三、操作类型

1. 数据传送
目的例如
寄存器寄存器MOVE
寄存器存储器STORE
MOVE
PUSH
存储器寄存器LOAD
MOVE
POP
存储器存储器MOVE
2. 算术逻辑操作

加、减、乘、除、增 1、减 1、求补、浮点运算、十进制运算
与、或、非、异或、位操作、位测试、位清除、位求反

3. 移位操作

算术移位
逻辑移位
循环移位(带进位和不带进位)

4. 转移
(1) 无条件转移

JMP

(2) 条件转移

结果为零转 (Z = 1) JZ
结果溢出转 (O = 1)JO
结果有进位转(C = 1)JC
跳过一条指令 SKP

(3) 调用和返回

在这里插入图片描述

(4) 陷阱(Trap)与陷阱指令

意外事故的中断

  • 一般不提供给用户直接使用
  • 设置供用户使用的陷阱指令
5. 输入输出

入 端口中的内容 ——> CPU 的寄存器

出 CPU 的寄存器 ——> 端口中的内容

7.3 寻址方式

确定 本条指令 的 操作数地址下一条 要执行 指令 的 指令地址

一、指令寻址

顺序:( PC ) + 1——> PC

跳跃:由转移指令指出

在这里插入图片描述

二、数据寻址

在这里插入图片描述

形式地址 指令字中的地址
有效地址 操作数的真实地址
约定 指令字长 = 存储字长 = 机器字长

1. 立即寻址

形式地址 A 就是操作数

在这里插入图片描述

指令执行阶段不访存
A 的位数限制了立即数的范围

2. 直接寻址

EA = A 有效地址由形式地址直接给出

在这里插入图片描述

执行阶段访问一次存储器
A 的位数决定了该指令操作数的寻址范围
操作数的地址不易修改(必须修改A)

3. 隐含寻址

操作数地址隐含在操作码中

在这里插入图片描述

MUL 指令:被乘数隐含在 AX(16位)或AL(8位)中

指令字中少了一个地址字段,可缩短指令字长

4. 间接寻址

EA =(A) 有效地址由形式地址间接提供

在这里插入图片描述

执行指令阶段 2 次访存
可扩大寻址范围
便于编制程序
多次访存

5. 寄存器寻址

EA = Ri 有效地址即为寄存器编号

在这里插入图片描述

执行阶段不访存,只访问寄存器,执行速度快
寄存器个数有限,可缩短指令字长

6. 寄存器间接寻址

EA = ( Ri ) 有效地址在寄存器中

在这里插入图片描述

有效地址在寄存器中, 操作数在存储器中,执行阶段访存
便于编制循环程序

7. 基址寻址
(1) 采用专用寄存器作基址寄存器

EA = ( BR ) + A
BR 为基址寄存器
在这里插入图片描述

可扩大寻址范围
有利于多道程序
BR 内容由操作系统或管理程序确定
在程序的执行过程中 BR 内容不变,形式地址 A 可变

(2) 采用通用寄存器作基址寄存器

在这里插入图片描述

由用户指定哪个通用寄存器作为基址寄存器
基址寄存器的内容由操作系统确定
在程序的执行过程中 R0 内容不变,形式地址 A 可变

8. 变址寻址

EA = ( IX ) +A
IX 为变址寄存器(专用)
通用寄存器也可以作为变址寄存器

在这里插入图片描述

可扩大寻址范围
IX 的内容由用户给定
在程序的执行过程中 IX 内容可变,形式地址 A 不变
便于处理数组问题

9. 相对寻址

EA = ( PC ) + A
A 是相对于当前指令的位移量(可正可负,补码)

在这里插入图片描述

A 的位数决定操作数的寻址范围
程序浮动
广泛用于转移指令

10. 堆栈寻址

在这里插入图片描述

先进后出(一个入出口)
栈顶地址 由 SP 指出

进栈 (SP)– 1 ——> SP
出栈 (SP)+ 1 ——> SP

在这里插入图片描述

7.4 设计指令格式时应考虑的各种因素

一、 指令系统的兼容性

二、 其他因素

操作类型 包括指令个数及操作的难易程度
数据类型 确定哪些数据类型可参与操作
指令格式 指令字长是否固定
地址码位数、地址个数、寻址方式类型
操作码位数、是否采用扩展操作码技术

寻址方式 指令寻址、操作数寻址
寄存器个数 寄存器的多少直接影响指令的执行时间

7.5 RISC 技术

一、RISC 的产生和发展

80 — 20 规律

二、RISC 的主要特征

选用使用频度较高的一些 简单指令, 复杂指令的功能由简单指令来组合
指令 长度固定、指令格式种类少、寻址方式少
只有 LOAD / STORE 指令访存
CPU 中有多个 通用 寄存器
采用 流水技术 一个时钟周期 内完成一条指令
采用 组合逻辑 实现控制器

三、CISC 的主要特征

系统指令 复杂庞大,各种指令使用频度相差大
指令 长度不固定、指令格式种类多、寻址方式多
访存 指令 不受限制
CPU 中设有 专用寄存器
大多数指令需要 多个时钟周期 执行完毕
采用 微程序 控制器

四、RISC和CISC 的比较

  1. RISC更能 充分利用 VLSI 芯片的面积
  2. RISC 更能 提高计算机运算速度
    指令数、指令格式、寻址方式少,
    通用 寄存器多,采用 组合逻辑 ,
    便于实现 指令流水
  3. RISC 便于设计,可 降低成本,提高 可靠性
  4. RISC 不易 实现 指令系统兼容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值