四大类指令
一个完备的指令系统通常包含四大类基本指令,以满足各种计算和控制需求。
指向原始笔记的链接
- 数据传输类指令:
- 实现寄存器、主存单元之间的数据交换。
- 包括普通传输 (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)。- 移位运算:算术移位(补符号位)、逻辑移位(补 0)、循环移位。
- 控制类指令:
- 改变程序的执行顺序。
- 包括无条件转移 (JMP)、条件转移 (JZ, JNZ)、子程序调用 (CALL) 和返回 (RET)。
- I/O 指令:
- 用于 CPU 与外设之间的数据交换。
- 存在性:取决于外设的编制方式(存储器编制方式)。
- 独立编制 (如 x86):有专用的
IN,OUT指令。- 统一编制 (如 ARM):无专用 I/O 指令,使用通用的数据传输指令 (如
MOV,LDR,STR) 访问 I/O 地址。
完备性与发展
- 完备性:只要具备上述四类功能,指令系统即为完备。
- 发展趋势:
- CISC (复杂指令集):为了满足新功能不断增加指令,导致指令集庞大(如 x86)。
- RISC (精简指令集):基于 20-80 定律(20% 的简单指令占 80% 的使用频率),精简指令集,优化常用指令(如 ARM, RISC-V)。