冯诺依曼计算机的指令系统¶
概述¶
指令系统是冯诺依曼计算机的重要组成部分,它定义了计算机能够执行的所有指令的集合。
指令的格式¶
指令格式
指令由操作码和地址码两部分组成。
指令格式
指令 = 操作码(OP) + 地址码(AD)
操作码¶
操作码(Operation Code)
指明指令要完成的操作。
操作类型:
- 算术运算: ADD, SUB, MUL, DIV
- 逻辑运算: AND, OR, NOT, XOR
- 数据传送: MOV, LOAD, STORE
- 控制转移: JMP, CALL, RET
地址码¶
地址码(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]