跳转至

指令系统

概述

指令系统是计算机所能执行的全部指令的集合,是计算机硬件和软件的主要界面。

指令系统定义

指令系统(Instruction Set)是计算机所有指令的集合,反映了计算机的基本功能。

指令的格式

基本格式

指令基本格式

指令 = 操作码(OP) + 地址码(AD)

Text Only
1
2
3
| 操作码字段 | 地址码字段 |
|-----------|-----------|
|  OP       |    A      |

操作码

操作码(Operation Code)

指明指令要完成的操作。

编码方式:

  • 固定长度: 所有指令操作码长度相同
  • 可变长度: 不同指令操作码长度不同

地址码

地址码(Address Code)

指明操作数或操作数地址。

指令的分类

按地址码数量分类

按地址码数量分类

根据地址码的数量,指令可分为:

类型 格式 示例 说明
零地址 OP RET, NOP 无操作数
一地址 OP A1 INC AX 单操作数
二地址 OP A1, A2 MOV AX, BX 双操作数
三地址 OP A1, A2, A3 ADD R1, R2, R3 三操作数

按功能分类

1. 数据传送指令

数据传送指令

在寄存器、存储器之间传送数据。

指令:

  • MOV: 数据传送
  • LOAD: 从存储器加载
  • STORE: 存储到存储器
  • PUSH: 压栈
  • POP: 出栈

2. 算术运算指令

算术运算指令

执行算术运算。

指令:

  • ADD: 加法
  • SUB: 减法
  • MUL: 乘法
  • DIV: 除法
  • INC: 加1
  • DEC: 减1

3. 逻辑运算指令

逻辑运算指令

执行逻辑运算。

指令:

  • AND: 逻辑与
  • OR: 逻辑或
  • NOT: 逻辑非
  • XOR: 逻辑异或

4. 控制转移指令

控制转移指令

改变程序执行顺序。

指令:

  • JMP: 无条件转移
  • JZ: 零标志转移
  • JNZ: 非零标志转移
  • CALL: 调用子程序
  • RET: 返回

寻址方式

寻址方式

寻址方式是指令获取操作数的方式。

1. 立即寻址

立即寻址

操作数直接包含在指令中。

示例: MOV AX, 100

特点:

  • 速度快
  • 操作数固定
  • 适合常数

2. 直接寻址

直接寻址

指令中给出操作数的内存地址。

示例: MOV AX, [1000H]

特点:

  • 直观
  • 地址固定
  • 适合访问固定地址

3. 寄存器寻址

寄存器寻址

操作数在寄存器中。

示例: MOV AX, BX

特点:

  • 速度快
  • 无需访问内存
  • 适合频繁使用的数据

4. 寄存器间接寻址

寄存器间接寻址

寄存器中存放操作数的地址。

示例: MOV AX, [BX]

特点:

  • 灵活
  • 可修改地址
  • 适合数组访问

5. 相对寻址

相对寻址

有效地址 = PC + 位移量。

示例: JMP +10

特点:

  • 适合转移指令
  • 位置无关代码
  • 适合程序浮动

CISC与RISC

CISC与RISC

两种不同的指令系统设计思想。

CISC(复杂指令集计算机)

CISC特点
  • 指令丰富
  • 指令长度可变
  • 寻址方式多样
  • 硬件复杂

代表: x86架构

RISC(精简指令集计算机)

RISC特点
  • 指令精简
  • 指令长度固定
  • 寻址方式简单
  • 硬件简单

代表: ARM, MIPS, RISC-V

参考资料