学习指南

指令集

计算机科学· 第4单元:处理器基础,主题2· 15 分钟阅读

1. 指令集定义与指令格式★★☆☆☆⏱ 4 min

📘 定义

指令集

处理器可执行的所有机器级指令的完整集合,定义了处理器能够执行的所有可能操作。

例:

ARM32拥有固定32位指令集,包含约50条核心指令。

所有机器指令都分为两个必要组成部分:定义要执行什么操作的操作码(operation code),以及一个或多个定义操作所作用的数据或内存地址的操作数

📐 例题

一个16位处理器使用7位操作码,计算最多可支持多少条唯一指令,以及剩余多少位可用于操作数。

  1. 1

    步骤1:唯一指令的数量等于 ,其中 是操作码的位数。

  2. 2
    27=1282^7 = 128
  3. 3

    步骤2:用总指令长度减去操作码位数,得到操作数的位数:

  4. 4
    167=916 - 7 = 9
  5. 5

    最终答案:128条唯一指令,操作数占9位。

Exam tip:

务必再次确认题目问的是指令数量还是操作数位数,不要混淆这两个概念。

2. 指令分类★★☆☆☆⏱ 3 min

指令按功能分类,考官经常要求考生将给定指令分到这些核心类别中:

  • 数据处理(算术/逻辑):对数据执行计算或逻辑运算(例如:加法、减法、与、移位)

  • 数据移动:在寄存器、内存和I/O之间移动数据(例如:加载、存储、移动)

  • 控制流:改变程序执行顺序(例如:分支、跳转、调用、返回)

  • 输入/输出:与外部外设通信

📐 例题

按功能对ADD R1, R2, R3BR MAINLOAD R0, [2000]进行分类。

  1. 1
    1. ADD R1, R2, R3将R2和R3的值相加,结果存储到R1中,这是一条**数据处理(算术)**指令。
  2. 2
    1. BR MAIN将执行流改到标签MAIN,这是一条控制流指令。
  3. 3
    1. LOAD R0, [2000]将内存地址2000的数据复制到R0,这是一条数据移动指令。

3. CISC与RISC架构★★★☆☆⏱ 5 min

CISC与RISC的比较是CIE 9618指令集部分最常考的内容,两种架构的设计目标截然不同:

方法对比

CISC

大型指令集,指令长度可变(1-15字节),多种寻址方式,支持内存-内存操作

+ 优点: 编译后的代码体积更小,编译器更简单

− 缺点: 硬件复杂,功耗更高

RISC

精简小型指令集,固定32位指令长度,寻址方式少,仅支持加载-存储架构

+ 优点: 硬件简单,支持高效流水线,功耗更低

− 缺点: 编译后的代码体积更大,编译器更复杂

📐 例题

解释为什么现代智能手机处理器更倾向于使用RISC。

  1. 1

    步骤1:智能手机需要长续航,因此能效是核心优先事项。

  2. 2

    步骤2:RISC硬件更简单,单指令功耗更低,并且支持高效流水线以获得更高性能。

  3. 3

    完整考试答案:RISC处理器功耗更低,可延长智能手机续航。其定长指令还支持高效流水线,带来更好的性能。

Exam tip:

对于4分的比较题,务必同时给出两种架构对应的特征才能得满分。

4. 核心寻址方式★★★☆☆⏱ 4 min

📘 定义

寻址方式

用于指定指令操作数的位置或值的方法。

CIE 9618最常考的三种核心寻址方式是:

  • 立即寻址:操作数的值直接存储在指令中,不需要额外内存访问

  • 直接寻址:指令存储操作数的内存地址,操作数的值从该内存地址取出

  • 寄存器寻址:操作数存储在处理器寄存器中,由指令指定寄存器

📐 例题

如果R0初始值为12,执行ADD R0, #4后R0的值是多少?说出#4的寻址方式。

  1. 1

    步骤1:#前缀表示立即数,因此4直接存储在指令中。

  2. 2

    步骤2:计算R0的新值:

  3. 3

    最终答案:R0 = 16,寻址方式为立即寻址。

5. 常见陷阱

错误做法:

4分的CISC与RISC比较题只给出一个不同点

原因:

考官每个不同点给1分,因此细节不足会丢分

正确做法:

比较题务必准备至少3个不同点(指令长度、寻址方式、硬件复杂度)

错误做法:

计算最大指令数时混淆操作码和操作数

原因:

只有操作码编码指令类型,因此只有操作码位数用于计算唯一指令数

正确做法:

记住:操作码定义指令做什么,因此只有操作码位数用于计算唯一指令数

错误做法:

认为立即寻址需要额外内存访问来获取操作数值

原因:

立即寻址将操作数值直接存储在指令本身中

正确做法:

只有基于内存的寻址方式(如直接寻址)才需要额外内存访问来获取操作数

错误做法:

将加载/存储指令归类为数据处理指令

原因:

加载/存储仅移动数据,不执行任何计算或处理

正确做法:

加载和存储指令始终归类为数据移动指令

6. 速查表

特征

CISC

RISC

指令长度

可变

固定

指令集大小

大(100+)

小(约50)

寻址方式数量

架构

允许内存-内存访问

仅加载-存储

硬件复杂度

7. 常见问题

CISC/RISC比较题通常占多少分?

这类题通常占3-4分,每个有效不同点得1分,因此要想得满分,你至少要准备3个不同点。

真题中的出现

AI 根据考纲规律估算的考点位置,请对照官方真题核实准确性。仅作复习重点参考。

  • 2022 · 4

    CISC与RISC比较

  • 2023 · 4

    指令结构计算

  • 2024 · 4

    寻址方式识别

深入阅读

下一步

指令集设计是理解处理器性能和流水线的基础,因为RISC的定长指令支持高效的指令流水线来提升吞吐量。本主题还与汇编语言编程和内存层次结构密切相关,这两个都是CIE 9618第4卷中占分高的核心主题。掌握这里的概念将帮助你在多个常见考题中轻松得分。