【王道考研·计算机组成原理】第4章 指令系统(整章完整版)

【王道考研·计算机组成原理】第4章 指令系统(整章完整版)
Austoin引言
第四章是“软硬件接口”章节,核心对象是 ISA(指令系统体系结构)。
这章的关键价值在于:
- 看懂一条指令如何被编码。
- 理解各种寻址方式的有效地址计算。
- 建立 CISC/RISC 的设计取舍视角。
图像化理解(Mermaid)
mindmap
root((第4章 指令系统))
指令格式
操作码
地址码
扩展操作码
指令类型
数据传送
算术逻辑
转移
输入输出
寻址方式
立即
直接
间接
寄存器
基址/变址
相对
ISA风格
CISC
RISC
一、指令与指令系统
1. 指令基本组成
- 操作码字段(OP):做什么操作。
- 地址码字段(A):操作数在哪里。
2. 指令系统定义
指令系统是处理器可执行指令集合及其编码、格式、语义约定。
3. ISA 还约定什么
- 除了指令集合本身,ISA 还规定寄存器组织、数据表示方式、寻址方式和异常/中断响应接口。
- 某些题目会把“条件码寄存器、字长、编址方式”也视为 ISA 的组成内容。
- ISA 是程序员可见机器模型的核心,因此它决定软件能看到什么资源。
4. 指令字长
- 定长指令:硬件实现简单、译码快。
- 变长指令:编码灵活、代码密度高。
二、指令格式与扩展操作码
1. 零地址、一地址、二地址、三地址
- 零地址:常见于堆栈机。
- 一地址:另一个操作数隐含在累加器。
- 二地址:一个操作数常兼作结果。
- 三地址:表达最直观,指令位宽占用高。
2. 扩展操作码
思想:把低频指令分配更长编码,提升整体编码利用率。
考点:可编码条数与码长分配关系。
3. 指令系统设计基本要求
- 完备性:常用操作应能被指令系统直接支持。
- 高效性:编码与执行都应兼顾速度和存储开销。
- 规整性:格式与操作尽量统一,便于译码和编译器生成代码。
- 兼容性:新机器应尽量保持旧程序可运行。
三、寻址方式(重中之重)
1. 立即寻址
- 操作数就在指令中。
- 速度快,但常数范围受字段宽度限制。
2. 直接寻址
- 地址字段就是操作数内存地址。
- 访存次数较少,地址范围受限。
3. 间接寻址
- 地址字段给出“地址的地址”。
- 灵活但访存次数更多。
4. 寄存器与寄存器间接
- 寄存器寻址速度快。
- 寄存器间接适合指针操作。
5. 基址、变址、相对寻址
- 基址:
EA = BR + A,利于程序重定位。 - 变址:
EA = IX + A,利于数组与循环。 - 相对:
EA = PC + A,利于分支跳转与位置无关代码。
6. 隐含寻址与堆栈寻址
- 隐含寻址不在指令中显式给出操作数地址,操作数位置由指令语义约定,如默认使用累加器。
- 堆栈寻址常把栈顶作为隐含操作数来源,零地址指令常与堆栈机结合出现。
PUSH/POP、函数调用和返回都与堆栈寻址思想密切相关。
7. 顺序寻址与跳跃寻址
- 顺序寻址下,程序按
PC自增的自然顺序执行。 - 跳跃寻址通过转移类指令改变
PC,使控制流跳到新位置。 - 分支、循环、函数调用本质上都依赖跳跃寻址实现控制转移。
8. 常见寻址方式的 EA 与访存特点
- 立即寻址通常不需要再访主存取操作数,但受指令字长限制。
- 直接寻址通常需要一次访存取操作数。
- 间接寻址往往需要先取有效地址、再取操作数,因此访存次数更多。
- 寄存器寻址几乎不访问主存,速度最快。
- 基址、变址、相对寻址的核心不是死记公式,而是理解“哪个寄存器参与地址形成、适合什么场景”。
四、程序控制类指令
1. 无条件转移与条件转移
- 无条件转移直接修改 PC。
- 条件转移需依赖标志位(Z、N、C、V 等)。
2. 调用与返回
- 调用指令保存返回地址。
- 返回指令恢复 PC。
3. 陷入与系统调用
- trap 由指令主动触发。
- 常用于用户态请求内核服务。
4. 操作类型再归类
- 数据传送类:装入、存储、寄存器传送。
- 算术逻辑类:加减乘除、与或非异或、比较、测试。
- 移位与位操作类:逻辑移位、算术移位、循环移位、置位清位。
- 程序控制类:转移、调用、返回、陷入。
- 输入输出类:端口输入、端口输出、启动 I/O 等。
五、CISC 与 RISC
1. CISC 特点
- 指令多且复杂。
- 寻址方式多。
- 代码密度高。
2. RISC 特点
- 指令少而规整。
- 多采用定长指令与 Load/Store 架构。
- 便于流水线与并行。
3. 考研结论
- 现代处理器常融合两者思想。
- ISA 只是接口,微结构可高度复杂。
六、PDF 例题与考点补充(第4章)
例题 1:相对寻址 EA 计算
题目:PC=1000H,位移 A=0010H,求 EA。
解:
1 | EA = PC + A = 1010H |
例题 2:基址寻址
题目:BR=2000H,A=0030H,求 EA。
解:
1 | EA = BR + A = 2030H |
例题 3:变址寻址场景
问:数组遍历最适合哪种寻址。
答:变址寻址。
解析:索引寄存器可随循环递增,地址生成代价低。
例题 4:为何 RISC 常用大量寄存器
解:
- 减少访存频次。
- 降低 Load/Store 压力。
- 增强流水线供数能力。
例题 5:立即数范围
题目:立即数字段 8 位无符号,能表示多大范围。
解:
1 | [0, 255] |
七、高频易错点
- 把“有效地址 EA”与“操作数”混淆。
- 把相对寻址误写为
EA = PC - A(方向错)。 - 忽略分支目标地址可能与取指 PC 更新时序有关。
- 误认为 RISC 指令一定更少字节。
- 把 trap 与外设中断混为一类。
八、本章速记清单
- 指令 = 操作码 + 地址码。
- 相对寻址常用
EA = PC + 偏移。 - 基址利于重定位,变址利于数组。
- RISC 常见 Load/Store 架构。
- ISA 是软硬件协议边界。
总结
第四章的本质是“把程序语义映射成硬件可执行编码”。
掌握指令格式与寻址方式后,你会更容易理解下一章 CPU 的执行过程与控制信号来源。
作者:[Austoin]
参考来源:E:\PDF\计算机组成原理(含新大纲考点).pdf、E:\PDF\2027计算机组成原理_高清带书签版.pdf(章节知识点整合)








