跳转至

指令系统

概述

指令系统

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

指令格式

指令基本格式

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

指令字长度

  • 单字长指令: 指令长度等于机器字长
  • 半字长指令: 指令长度等于半个机器字长
  • 双字长指令: 指令长度等于两个机器字长

地址码格式

graph TB
    A[指令格式] --> B[零地址指令]
    A --> C[一地址指令]
    A --> D[二地址指令]
    A --> E[三地址指令]
    A --> F[四地址指令]

    style A fill:#E3F2FD
    style B fill:#E8F5E9
    style C fill:#FFF3E0
    style D fill:#F3E5F5
    style E fill:#FCE4EC
    style F fill:#E0F2F1

1. 零地址指令

零地址指令

无操作数指令,用于停机、空操作等。

格式: OP

示例: HLT(停机)、NOP(空操作)

2. 一地址指令

一地址指令

单操作数指令,操作数既是源又是目的。

格式: OP A1

示例: INC AX(加1)、DEC AX(减1)

3. 二地址指令

二地址指令

双操作数指令,最常用的指令格式。

格式: OP A1, A2

功能: (A1) OP (A2) → A1

示例: ADD AX, BX(加法)、MOV AX, BX(传送)

4. 三地址指令

三地址指令

两个源操作数,一个目的操作数。

格式: OP A1, A2, A3

功能: (A2) OP (A3) → A1

寻址方式

寻址方式

确定操作数有效地址的方法。

1. 立即寻址

立即寻址

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

格式: OP #n

示例: MOV AX, #100

特点:

  • 速度快,无需访问内存
  • 操作数固定,灵活性差

2. 直接寻址

直接寻址

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

格式: OP (ADDR)

示例: MOV AX, (1000H)

特点:

  • 直观简单
  • 地址固定,灵活性差
  • 寻址范围受指令长度限制

3. 间接寻址

间接寻址

指令给出的是操作数地址的地址。

格式: OP ((ADDR))

特点:

  • 寻址范围大
  • 需要多次访问内存
  • 速度较慢

4. 寄存器寻址

寄存器寻址

操作数存放在寄存器中。

格式: OP R

示例: MOV AX, BX

特点:

  • 速度快,无需访问内存
  • 寻址范围受寄存器数量限制

5. 寄存器间接寻址

寄存器间接寻址

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

格式: OP (R)

示例: MOV AX, (BX)

特点:

  • 寻址范围大
  • 比间接寻址快

6. 变址寻址

变址寻址

有效地址 = 变址寄存器内容 + 形式地址

格式: OP (R + D)

示例: MOV AX, 100(BX)

应用: 数组访问、循环处理

7. 基址寻址

基址寻址

有效地址 = 基址寄存器内容 + 形式地址

应用: 多道程序设计、重定位

8. 相对寻址

相对寻址

有效地址 = PC内容 + 形式地址

应用: 转移指令、位置无关代码

指令类型

类型 功能 示例
数据传送 在寄存器/存储器间传送数据 MOV、PUSH、POP
算术运算 执行算术运算 ADD、SUB、MUL、DIV
逻辑运算 执行逻辑运算 AND、OR、NOT、XOR
移位操作 执行移位操作 SHL、SHR、ROL、ROR
转移指令 改变程序执行顺序 JMP、CALL、RET
控制指令 控制CPU状态 HLT、NOP、CLI、STI

CISC与RISC

CISC(复杂指令集计算机)

CISC特点

  • 指令系统复杂,指令数量多
  • 指令格式多样,长度不固定
  • 寻址方式复杂
  • 代表: x86架构

RISC(精简指令集计算机)

RISC特点
  • 指令系统简单,指令数量少
  • 指令格式固定,长度统一
  • 寻址方式简单
  • 代表: ARM、MIPS、RISC-V

参考资料