计算机组成原理指令系统#50
第5章 指令系统总览
约 931 字
目录 · 8 个章节
定义
指令系统(ISA) 是 CPU 对软件暴露的接口——规定 CPU 能执行哪些指令、指令如何编码、如何指定操作数。它是软件与硬件之间的"合同":编译器按 ISA 生成代码,CPU 按 ISA 执行。
知识结构
graph TD
ISA[指令系统 ISA] --> FMT[指令格式]
ISA --> ADDR[地址数]
ISA --> MODE[寻址方式]
ISA --> DESIGN[指令系统设计]
FMT --> OP[操作码 OP:做什么]
FMT --> A[地址码 A:操作数在哪]
ADDR --> A3[三地址:C ← A + B]
ADDR --> A2[二地址:A ← A + B]
ADDR --> A1[一地址:隐含 ACC]
ADDR --> A0[零地址:隐含栈顶]
MODE --> M1[立即:S = A]
MODE --> M2[直接:EA = A]
MODE --> M3[间接:EA = M[A]]
MODE --> M4[寄存器:S = R]
MODE --> M5[寄存器间接:EA = R]
MODE --> M6[基址:EA = BR + A]
MODE --> M7[变址:EA = A + IX]
MODE --> M8[相对:EA = PC + A]
DESIGN --> CISC[CISC:复杂指令,功能强]
DESIGN --> RISC[RISC:简单规整,Load/Store]
四块核心
| 模块 | 核心问题 | 关键结论 | 详见 |
|---|---|---|---|
| 指令格式 | 指令由什么组成 | OP + 地址码;定长/扩展操作码 | 指令系统概述 字长与扩展操作码 |
| 地址数 | 指令显式指定几个操作数 | 零/一/二/三地址,本质是信息分配权衡 | 指令系统概述 |
| 寻址方式 | 如何从地址字段找到操作数 | 八种方式,统一于 | 寻址方式 |
| 系统设计 | 指令集应该长什么样 | CISC 追求功能强,RISC 追求规整流水线 | 指令类型与 CISC/RISC |
寻址方式速查
统一视角:地址码 不一定是最终地址,可能需与寄存器或 PC 组合。
| 寻址方式 | 公式 | 访存次数 | 核心用途 |
|---|---|---|---|
| 立即寻址 | 0 | 常量 | |
| 寄存器寻址 | 0 | 寄存器变量 | |
| 直接寻址 | 1 | 全局变量 | |
| 寄存器间接 | 1 | 指针 | |
| 基址寻址 | 1 | 程序重定位 | |
| 变址寻址 | 1 | 数组遍历 | |
| 相对寻址 | 1 | 跳转/分支 | |
| 间接寻址 | 扩大寻址范围 |
三类统一形式 :
- 基址寻址:基准 = (固定),偏移 = → 程序搬家
- 变址寻址:基准 = (固定),偏移 = → 数组元素
- 相对寻址:基准 = (固定),偏移 = → 指令跳转
相对寻址 PC 陷阱
取指后 PC 已指向下一条指令。
指令类型一览
| 类型 | 做什么 | 本质 |
|---|---|---|
| 数据传送 | MOV, LOAD, STORE | 只搬数据,不改值 |
| 算术运算 | ADD, SUB, MUL, DIV | ALU 算术运算 |
| 逻辑运算 | AND, OR, XOR, SHL | 按位操作 |
| 程序控制 | JMP, BEQ, CALL, RET | 修改 PC |
| 输入输出 | IN, OUT | CPU ↔ 外设 |
程序执行 = 反复做三件事:取数据 → 运算 → 决定下一步。
CISC vs RISC
| 对比项 | CISC | RISC |
|---|---|---|
| 设计取向 | 一条指令做更多事 | 每条指令简单快速 |
| 指令长度 | 变长 | 定长 |
| 寻址方式 | 多 | 少 |
| 访存 | 运算指令可直接访存 | 仅 LOAD/STORE 访存 |
| 流水线 | 不友好 | 友好 |
核心区别:RISC 的 Load/Store 结构——算术逻辑指令只在寄存器间操作,访存统一通过 LOAD/STORE。好处是格式规整、步骤相似、易于流水化。
ISA vs 微体系结构
- ISA:对外接口,规定"看起来应该做什么"——同一 ISA 上所有软件通用。
- 微体系结构:内部实现,决定"内部实际怎么做"——单周期/多周期/流水线/超标量/乱序均可。
不要把指令系统描述成 CPU 内部结构。ISA 是合同,微架构是履约方式。
全章考点速记
- 定长操作码 位 → 种操作;扩展操作码本质是分层占用编码空间,短操作码为长操作码留前缀。
- 八种寻址方式公式必须默写;基址/变址/相对三者统一于"基准 + 偏移"但用途不同。
- 相对寻址必须先确认取指后 PC,再加减偏移。
- 程序控制指令本质 = 修改 PC;Load/Store 结构是 RISC 核心特征。
- ISA 是接口,微架构是实现——两者分层,不可混淆。
- 指令字长 ≠ 机器字长 ≠ 存储字长,做题先判"说的是哪个字长"。
讨论
0 条评论
登录后参与讨论
登录后可以发布评论、回复和点赞。
暂无评论。