Skip to main content
本章按“指令格式 → 寻址方式 → CISC 与 RISC → 考点与易错点”整理指令系统。复习时先建立指令的组成框架,再重点掌握扩展操作码计算和各种寻址方式的有效地址与访存次数。
计算题的两条主线:操作码用“位数划分”解决,寻址方式用“有效地址 EA + 访存次数”解决。遇到题目先写出指令格式,再逐项代入。

指令格式

基本概念

  • 指令:计算机执行某种操作的命令。
  • 指令系统 / 指令集:一台计算机所有指令的集合。
  • ISA(指令集体系结构):软件和硬件之间的接口,规定指令格式、寻址方式、寄存器、数据类型等。

指令基本格式

指令 = 操作码 OP + 地址码 A
  • 操作码 OP:指明做什么操作,如加、减、传送、转移。
  • 地址码 A:指明操作数或操作数地址。

操作码分类

  • 操作码长度固定。
  • nn 位操作码最多表示 2n2^{n} 条指令。
  • 优点:译码简单。
  • 缺点:扩展性差。
  • 操作码长度可变。
  • 高频指令用短码,低频指令用长码。
  • 设计原则:
    1. 短码不能是长码的前缀。
    2. 每级必须留出扩展标志。
    3. 地址码位数越多,操作码可用位数越少。
  • 常考:给出各级指令条数,求操作码位数或最多可扩展条数。
扩展操作码的本质是“二进制前缀不能被占用”。计算时先从短码逐级统计已用编码,再乘以每级剩余的扩展标志数。

地址码数量分类

指令字长

  • 单字长指令:指令字长 = 机器字长。
  • 半字长指令:指令字长 = 半个机器字长。
  • 双字长指令:指令字长 = 两个机器字长。
  • 指令字长通常取字节整数倍。
易错:指令字长 ≠ 机器字长 ≠ 存储字长,三者无必然相等关系。

指令操作类型

  • 数据传送:MOV、LOAD、STORE。
  • 算术逻辑:ADD、SUB、AND、OR、NOT。
  • 移位:算术移位、逻辑移位、循环移位。
  • 转移:无条件转移、条件转移、调用、返回。
  • 输入输出:IN、OUT。
  • 其他:停机、空操作、中断等。

指令的寻址方式

指令寻址

  • 顺序寻址:PC 自动加一条指令长度。
  • 跳跃寻址:由转移指令修改 PC。

数据寻址

访存次数指“取操作数”阶段,不含取指令。

各寻址方式详解

  • 操作数不在指令中显式给出,而是隐含在累加器 AC 或默认位置。
  • 访存次数:0。
  • 特点:指令短,但灵活性差。
  • 指令中直接给出操作数本身。
  • 操作数 = A。
  • 访存次数:0。
  • 特点:速度快,但操作数范围受指令字长限制。
  • 指令中给出操作数的内存地址。
  • EA = A。
  • 访存次数:1。
  • 特点:简单,但寻址范围受地址码位数限制。
  • 指令中给出的地址指向一个内存单元,该单元中存放的是操作数的有效地址。
  • EA = (A)。
  • 访存次数:2。
    • 第一次访存:取出有效地址 EA。
    • 第二次访存:取出操作数。
  • 特点:寻址范围大,但速度慢。
  • 可多次间接寻址,但访存次数更多。
一次间接寻址取操作数需访存 2 次:先取有效地址,再取操作数。
  • 操作数在寄存器中。
  • 操作数 = R。
  • 访存次数:0。
  • 特点:速度快,但寄存器数量有限。
  • 寄存器中存放的是操作数的内存地址。
  • EA = (R)。
  • 访存次数:1。
  • 特点:操作数在内存,需访存一次。
  • EA = (BR) + A,BR 为基址寄存器。
  • 访存次数:1。
  • 特点:
    • 基址寄存器内容通常不变。
    • 形式地址 A 可变。
    • 面向系统,用于程序重定位。
  • EA = (IX) + A,IX 为变址寄存器。
  • 访存次数:1。
  • 特点:
    • 变址寄存器内容可变。
    • 形式地址 A 通常不变。
    • 面向用户,适合数组、循环访问。
  • EA = (PC) + A。
  • A 通常为补码偏移量,可正可负。
  • PC 一般已指向下一条指令。
  • 访存次数:1。
  • 特点:用于转移指令,便于程序浮动。

易错对比

  • 寄存器寻址:操作数在寄存器中,访存次数 0。
  • 寄存器间接寻址:寄存器中存放操作数地址,操作数在内存,访存次数 1。
  • 一次间接寻址:访存 2 次。
  • 第一次取有效地址,第二次取操作数。

CISC 与 RISC

  • 指令少且精简。
  • 指令长度固定。
  • 寻址方式少。
  • Load / Store 架构:只有取数和存数指令访问内存。
  • 通用寄存器多。
  • 硬布线控制为主。
  • 适合流水线。
  • 一个周期执行一条指令,CPI 接近 1。
  • 编译优化容易。
  • 指令多且复杂。
  • 指令长度可变。
  • 寻址方式多。
  • 微程序控制为主。
  • 通用寄存器较少。
  • 多数指令可直接访存。
  • 指令执行周期差异大。
  • 编译优化较难。
注意:现代 CISC 和 RISC 界限逐渐模糊,CISC 处理器内部也常采用 RISC 思想。

本章高频考点与易错点

高频考点

  1. 扩展操作码编码计算。
  2. 各种寻址方式的有效地址计算。
  3. 各种寻址方式的访存次数。
  4. 基址、变址、相对寻址的区别。
  5. 一地址、零地址指令的隐含操作数。
  6. 指令字长、机器字长、存储字长的关系。
  7. CISC 与 RISC 的对比判断。

易错点

  1. 间接寻址访存次数:一次间接寻址取操作数需访存 2 次。
  2. 相对寻址 PC 值:通常 PC 已指向下一条指令。
  3. 基址与变址:基址面向系统,变址面向用户。
  4. 寄存器寻址与寄存器间接寻址:前者操作数在寄存器,后者操作数在内存。
  5. 指令字长与机器字长:二者无必然相等关系。
  6. 扩展操作码:短码不能是长码前缀,每级要留扩展标志。
  7. CISC / RISC:RISC 只有 load / store 访存,指令定长,适合流水线。
Last modified on October 14, 2026