一个完备的指令系统通常包含四大类基本指令,以满足各种计算和控制需求。
- 数据传输类指令:
- 实现寄存器、主存单元之间的数据交换。
- 包括普通传输 (Move)、堆栈操作 (Push/Pop) 和数据交换 (Exchange)。
- 运算类指令:
- 算术运算:加、减、乘、除、加 1、减 1 等。会影响状态标志位 (CF, OF, SF, ZF 等),供 CPU 监控运算状态。
- 逻辑运算:与 (AND)、或 (OR)、非 (NOT)、异或 (XOR)。 重点
- 位检测:使用掩码进行 与 (AND) 运算。例如检测某位是否为 1(
x & 0010)。 - 位清零:使用掩码进行 与 (AND) 运算。例如将某位清零(
x & 1101)。 - 位置位:使用掩码进行 或 (OR) 运算。例如将某位置 1(
x | 0010)。 - 位取反:使用掩码进行 异或 (XOR) 运算。例如将某位取反(
x ^ 0010)。 - 判等:两数 异或 (XOR),若结果为 0 则相等(
A ^ B == 0)。
- 位检测:使用掩码进行 与 (AND) 运算。例如检测某位是否为 1(
- 移位运算:算术移位(补符号位)、逻辑移位(补 0)、循环移位。
- 控制类指令:
- 改变程序的执行顺序。
- 包括无条件转移 (JMP)、条件转移 (JZ, JNZ)、子程序调用 (CALL) 和返回 (RET)。
- I/O 指令:
- 用于 CPU 与外设之间的数据交换。
- 存在性:取决于外设的编制方式(存储器编制方式)。
- 独立编制 (如 x86):有专用的
IN,OUT指令。 - 统一编制 (如 ARM):无专用 I/O 指令,使用通用的数据传输指令 (如
MOV,LDR,STR) 访问 I/O 地址。
- 独立编制 (如 x86):有专用的