网站开发与制作工资免费提交网址的网站
指令系统
- 指令系统
 - 指令的概述
 - 指令的格式
 - 指令的字长取决于
 
- 操作数类型和操作种类
 - 操作数的类型
 - 数据在存储器中的存放方式
 - 操作类型
 
- 寻址方式
 - 指令寻址
 - 数据寻址
 - 立即寻址
 - 直接寻址
 - 隐含寻址
 - 间接寻址
 - 寄存器寻址
 - 寄存器间接寻址
 - 基址寻址
 - 变址寻址
 - 堆栈寻址
 
- RISC 和 CISC 技术
 - RISC 即精简指令系统计算机
 - CISC 即复杂指令系统计算机
 - RISC 和 CISC 的比较
 
大家好呀!我是小笙,本章我主要分享计算机组成原理的指令系统知识,希望内容对你有所帮助!
指令系统
指令的概述
指令的格式
 
-  
操作码:反映机器做什么操作
-  
长度固定:将操作码集中放在指令字的一个字段内(用于指令字段较长的情况。例如: IBM370)
 -  
长度可变:操作码分散在指令字的不同字段中(有效地压缩操作码的平均长度,在字长较短的微型计算机中被广泛采用。例如:PDP-11)
 -  
扩展操作码技术:操作码的位数随地址数的减少而增加
  
 -  
 -  
地址码:地址码用来指出该指令的源操作数的地址(一个或两个)、结果的地址以及下一条指令的地址
分类:四地址指令、三地址指令、二地址指令、一地址指令、零地址指令
 
指令的字长取决于
- 操作码的长度
 - 操作数地址的长度
 - 操作数地址的个数
 
指令字长可以分为固定和可变:固定的时候,指令字长 = 存储字长 ; 可变的时候,按字节的整数倍数变化
操作数类型和操作种类
操作数的类型
- 地址:无符号整数
 - 数字:定点数、浮点数、十进制数
 - 字符:ASCII
 - 逻辑数:逻辑运算
 
数据在存储器中的存放方式
-  
不对准边界(从任意位置开始访问)
优点:不浪费存储资源
缺点:除了访问每个字节之外,访问其他任何类型的数据都可能花费两个存储周期的时间;读写控制比较复杂

 -  
对准边界(从一个存储字的起始位置开始访问)
优点:无论访问任何类型的数据,在一个周期均可完成;读写控制简单
缺点:浪费了宝贵的存储资源

 -  
边界对转方式(从地址的整数倍位置开始访问)
数据存放的起始位置是数据长度的整数倍(前面两种方式的折中方案)
 
操作类型
- 数据传送:数据传送包括寄存器与寄存器、寄存器与存储单元、存储单元与存储单元之间的传送
 - 算术逻辑操作:算术运算和逻辑运算
 - 移位操作:分为算术移位、逻辑移位和循环移位
 - 转移:跳转、无条件/条件转移等
 - 输入输出:从外设中的寄存器读入一个数据到 CPU 的寄存器内,或将数据从 CPU 的寄存器输出至某外设的寄存器中
 
寻址方式
寻址方式:确定本条指令的数据地址以及下一条将要执行的指令地址的方法
寻址方式分为指令寻址和数据寻址两大类
指令寻址
- 顺序寻址可通过程序计数器PC加1,自动形成下一条指令的地址
 - 跳跃寻址则通过转移类指令实现
 
 
数据寻址
指令的地址码字段通常都不代表操作数的真实地址

- 形式地址:指令中的地址(可以理解为逻辑地址)
 - 有效地址:操作数的真实地址
 
以下寻址方式建立在 指令字长 = 存储字长 = 机器字长
立即寻址
操作数本身设在指令字内,即形式地址 A 不是操作数的地址,而是操作数本身,又称之为立即数(数据是采用补码形式存放的)
 
优点:只要取出指令,便可立即获得操作数,这种指令在执行阶段不必再访问存储器
缺点:显然 A 的位数限制了这类指令所能表述的立即数的范围
直接寻址
EA = A 有效地址由形式地址直接给出
 
优点:寻找操作数比较简单,也不需要专门计算操作数的地址,在指令执行阶段对主存只访问一次
缺点:A 的位数限制了操作数的寻址范围,而且必须修改A的值,才能修改操作数的地址
隐含寻址
指令字中不明显地给出操作数的地址,其操作数的地址隐含在操作码或某个寄存器中
 
由于隐含寻址在指令字中少了一个地址,因此,这种寻址方式的指令有利于缩短指令字长
间接寻址
倘若指令字中的形式地址不直接指出操作数的地址,而是指出操作数有效地址所在的存储单元地址,也就是说,有效地址是由形式地址间接提供的,即为间接寻址,即EA=(A)
 
优点:它扩大了操作数的寻址范围以及便于编程
缺点:在于指令的执行阶段需要访存两次(一次间接寻址)或多次(多次间接寻址),致使指令执行时间延长
 
寄存器寻址
在寄存器寻址的指令字中,地址码字段直接指出了寄存器的编号,即EA=Ri
 
优点
- 操作数不在主存中,故寄存器寻址在指令执行阶段,无须访存,减少了执行时间
 - 地址字段只需指明寄存器编号(计算机中寄存器数有限),故指令字较短,节省了存储空间
 
寄存器间接寻址
Ri 中的内容不是操作数,而是操作数所在主存单元的地址号,即有效地址EA=(Ri)(有效地址不是存放在存储单元中,而是存放在寄存器中)
 
基址寻址
基址寻址需设有基址寄存器 BR,其操作数的有效地址EA等于指令字中的形式地址与基址寄存器中的内容(称为基地址)相加,即 EA = A + (BR)
- 隐式:计算机内部专门设置一个基址寄存器 BR,使用时用户不必明显指出该基址寄存器
 - 显式:一组通用的寄存器里,由用户来明确指出哪个寄存器用作基址寄存器
 
 
优点
- 基址寻址可以扩大操作数的寻址范围
 - 基址寻址在多道程序中极为有用
 - 用户也不可以修改基址寄存器的内容,确保系统安全可靠地运行
 
变址寻址
变址寻址与基址寻址极为相似。其有效地址EA等于指令字中的形式地址A与变址寄存器 X的内容相加之和,即 EA = A +(IX)
变址寻址主要用于处理数组问题,在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器X的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序
 
优点
- 只要变址寄存器位数足够,也可扩大操作数的寻址范围
 - IX 的内容由用户给定
 - 在程序执行过程中 IX 内容可变,形式地址A是不可变的
 - 便于处理数组问题
 
堆栈寻址
堆栈分为硬堆栈(多个寄存器)、软堆栈(指定的存储空间)
堆栈寻址就其本质也可视为寄存器间接寻址,因SP可视为寄存器,它存放着操作数的有效地址
 
RISC 和 CISC 技术
RISC 即精简指令系统计算机
主要特征:
- 选用使用频率较高的一些简单指令;复杂指令的功能由简单指令来组合实现
 - 指令长度固定、指令格式种类少、寻址方式少
 - 只有 LOAD/STORE 指令访存
 - CPU 中有多个通用寄存器
 - 采用流水技术,一个时钟周期内完成一条指令
 - 采用组合逻辑实现控制器
 
CISC 即复杂指令系统计算机
主要特征:
- 系统指令复杂庞大,各种指令使用频度相差大
 - 指令长度不固定、指令格式种类多、寻址方式多
 - 访存指令不受限制
 - CPU 中设有专有寄存器
 - 大多数指令需要多个时钟周期执行完毕
 - 采用微程序控制器
 
RISC 和 CISC 的比较
| CISC | RISC | |
|---|---|---|
| 指令系统 | 复杂,庞大 | 简单,精简 | 
| 指令数目 | 大于200条 | 小于100条 | 
| 指令字长 | 不固定 | 定长 | 
| 可访存指令 | 不加限制 | 只有Load/Store指令 | 
| 控制方式 | 绝大多数为微程序 | 绝大多数用组合逻辑 | 
| 通用寄存器数量 | 较少 | 多 | 
