第5章 指令系统

指令系统(ISA)是计算机软硬件的交界面,规定了处理器能执行的指令集合和格式,决定了一台计算机硬件的主要性能和基本功能。

5.1 指令系统的发展

指令系统随着计算机的发展不断丰富,经历了从简单到复杂再到精简的过程。早期计算机指令少而简单,后来为增强功能增加了大量复杂指令(CISC),随后RISC思想回归精简。

5.2 机器指令特征

基本概念

  • 指令:指示计算机执行某些操作的命令,用一个二进制位串表示
  • 指令系统:一台计算机中所有机器指令的集合

机器指令的要素

每条机器指令必须包含:操作码、源操作数的引用、结果操作数引用、下一条指令引用。

指令系统的设计要素

设计要素 说明
操作清单 提供多少种操作、复杂程度
数据类型 对哪几种数据类型完成操作
指令格式 指令长度、地址数目、字段长度
寄存器 可访问的CPU寄存器数目及用途
寻址方式 操作数地址的产生方式

设计原则:完备性、有效性、规整性(对称性/均齐性/格式一致)、兼容性。

指令长度与数据字长的关系

  • 指令字长:一条指令的二进制位数
  • 机器字长:CPU一次能处理的数据位数(由ALU和寄存器位数决定)
  • 数据字:数据类型的宽度度量单位
  • 指令字长可以是机器字长的整数倍或分数倍(半字长/单字长/双字长指令)

指令类型

类型 功能 示例
数据处理指令 算术、逻辑、移位、比较 ADD、AND、SHL
数据传送指令 寄存器与主存间传送 LOAD、STORE、MOV
程序控制指令 改变程序执行顺序 JMP、CALL、RET
输入输出指令 与外设交换数据 IN、OUT

5.3 指令格式

操作码

类型 特点 适用
定长操作码 长度固定,硬件设计简单 字长较长的大中型机
变长操作码 长度可变,分散在不同字段 微型、小型计算机

地址码

地址数 格式 说明
三地址 OP A1 A2 A3 A1 = A2 op A3
二地址 OP A1 A2 A1 = A1 op A2
一地址 OP A1 A1 = ACC op A1
零地址 OP 栈顶操作或无操作数

操作数位置类型

类型 操作数位置 速度
SS型 两个操作数都在主存 慢(多次访存)
RR型 两个操作数都在寄存器 快(无需访存)
RS型 一个在主存,一个在寄存器 中等

操作码扩展

变长操作码设计中,地址码位数减少时操作码位数增加。

例:16位指令字长,基本4位操作码,3个地址码字段各4位:

  • 4位操作码→最多15条三地址指令
  • 8位操作码→最多15条二地址指令
  • 12位操作码→最多15条一地址指令
  • 16位操作码→16条零地址指令

5.4 寻址方式

寻址方式 有效地址 访存次数 说明
立即寻址 0 操作数在指令中
直接寻址 EA = D 1 地址字段直接给出主存地址
间接寻址 EA = (D) 2 D单元的内容是操作数地址
寄存器寻址 EA = Ri 0 操作数在寄存器中
寄存器间接寻址 EA = (Ri) 1 寄存器的内容是主存地址
相对寻址 EA = (PC)+D 1 PC+偏移量,程序可浮动
基址寻址 EA = (BR)+D 1 基址寄存器+偏移量
变址寻址 EA = (IX)+D 1 变址寄存器+偏移量
隐含寻址 隐含约定 操作数地址隐含在操作码中
堆栈寻址 SP 栈顶操作,隐含由SP提供地址

5.5 CISC与RISC

特征 CISC(复杂指令集) RISC(精简指令集)
指令数量 多(数百条) 少(数十条)
指令格式 可变长 固定长
寻址方式 多(十几种) 少(几种)
执行周期 可变 单周期为主
控制器实现 微程序控制为主 硬布线控制为主
存储器访问 多数指令可直接操作内存 只有LOAD/STORE访存
编译器设计 复杂 简单(优化空间大)
硬件实现 复杂,资源利用率低 简单高效

RISC特点:指令少而简单、固定长度、单周期执行、LOAD/STORE架构、硬布线控制为主。典型代表:ARM、RISC-V、MIPS。

CISC特点:指令丰富、可变长度、多寻址方式、微程序控制为主。典型代表:x86(Intel/AMD)。

现代趋势:x86内部将CISC指令解码为RISC风格的微操作执行。

5.6 指令系统兼容性

系列机各机种之间应具有共同的基本指令集,以保证程序兼容。当用户更换新机器时,原来编写的程序可不必修改就使用在高档机中(如IBM 360系列)。


考试重点

★★☆ 第二梯队

考点 典型题型
指令格式设计(定长/变长操作码扩展) 设计题
寻址方式有效地址计算 计算题
CISC与RISC对比 简答/对比表
SS/RR/RS型指令特点 简答
操作码扩展例题 计算

★☆☆ 第三梯队

考点 典型题型
指令的类型和功能 简答
指令系统的设计原则 简答
间接寻址的作用 简答
指令长度与数据字长的关系 简答
指令系统兼容性概念 简答