← 返回计算机组成原理目录
计算机组成原理指令系统#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 + 地址码;定长/扩展操作码指令系统概述 字长与扩展操作码
地址数指令显式指定几个操作数零/一/二/三地址,本质是信息分配权衡指令系统概述
寻址方式如何从地址字段找到操作数八种方式,统一于 EA=f(A,R,PC,)EA = f(A, R, PC, \dots)寻址方式
系统设计指令集应该长什么样CISC 追求功能强,RISC 追求规整流水线指令类型与 CISC/RISC

寻址方式速查

统一视角:地址码 AA 不一定是最终地址,可能需与寄存器或 PC 组合。

寻址方式公式访存次数核心用途
立即寻址S=AS = A0常量
寄存器寻址S=RS = R0寄存器变量
直接寻址EA=AEA = A1全局变量
寄存器间接EA=R, S=M[R]EA = R,\ S = M[R]1指针
基址寻址EA=BR+AEA = BR + A1程序重定位
变址寻址EA=A+IXEA = A + IX1数组遍历
相对寻址EA=PC+AEA = PC + A1跳转/分支
间接寻址EA=M[A], S=M[EA]EA = M[A],\ S = M[EA]2\ge 2扩大寻址范围

三类统一形式 EA=基准+偏移EA = \text{基准} + \text{偏移}

  • 基址寻址:基准 = BRBR(固定),偏移 = AA → 程序搬家
  • 变址寻址:基准 = AA(固定),偏移 = IXIX → 数组元素
  • 相对寻址:基准 = PCPC(固定),偏移 = AA → 指令跳转
相对寻址 PC 陷阱
取指后 PC 已指向下一条指令。

指令类型一览

类型做什么本质
数据传送MOV, LOAD, STORE只搬数据,不改值
算术运算ADD, SUB, MUL, DIVALU 算术运算
逻辑运算AND, OR, XOR, SHL按位操作
程序控制JMP, BEQ, CALL, RET修改 PC
输入输出IN, OUTCPU ↔ 外设

程序执行 = 反复做三件事:取数据 → 运算 → 决定下一步

CISC vs RISC

对比项CISCRISC
设计取向一条指令做更多事每条指令简单快速
指令长度变长定长
寻址方式
访存运算指令可直接访存仅 LOAD/STORE 访存
流水线不友好友好

核心区别:RISC 的 Load/Store 结构——算术逻辑指令只在寄存器间操作,访存统一通过 LOAD/STORE。好处是格式规整、步骤相似、易于流水化。

ISA vs 微体系结构

  • ISA:对外接口,规定"看起来应该做什么"——同一 ISA 上所有软件通用。
  • 微体系结构:内部实现,决定"内部实际怎么做"——单周期/多周期/流水线/超标量/乱序均可。

不要把指令系统描述成 CPU 内部结构。ISA 是合同,微架构是履约方式。

全章考点速记

  • 定长操作码 nn 位 → 2n2^n 种操作;扩展操作码本质是分层占用编码空间,短操作码为长操作码留前缀。
  • 八种寻址方式公式必须默写;基址/变址/相对三者统一于"基准 + 偏移"但用途不同。
  • 相对寻址必须先确认取指后 PC,再加减偏移。
  • 程序控制指令本质 = 修改 PC;Load/Store 结构是 RISC 核心特征。
  • ISA 是接口,微架构是实现——两者分层,不可混淆。
  • 指令字长 ≠ 机器字长 ≠ 存储字长,做题先判"说的是哪个字长"。

讨论

0 条评论

登录后参与讨论

登录后可以发布评论、回复和点赞。

暂无评论。

x1a0Y4NGren's Blog

一个计算机学生的学习记录、算法题解与个人知识管理。

RSS