一、数据传送类指令
数据传送类指令主要分为 “源地址” 和 “目的地址” 两个部分。
- 寄存器-寄存器
- 寄存器-存储器 ( 指令)
- 存储器-寄存器 ( 指令)
- 存储器-存储器
- 堆栈操作: (入栈), (出栈)
- 清零、置1: (清零), (置1)
二、运算类指令
算术运算
加、减、乘、除、求补、浮点、十进制运算
逻辑运算
与、或、非、异或
其他运算
位测试、位清楚、位求反
三、移位指令
一般来说,有 8 种移位指令:
算术左移、算术右移、逻辑左移、逻辑右移、小循环左移、小循环右移、大循环左移、大循环右移。
四、转移指令
无条件转移指令
直接跳转到某处,不取决于任何条件。类似 C 中的 goto 语句,例如 JMP LOOP。
条件转移指令
根据机器当前的程序状态字中的某位来决定是否执行转移,例如 。
: 如果当前指令运算结果为0,则会跳转到 LOOP 标号处。
调用与返回指令
类比 C 程序中的函数调用,以及函数返回。例如 、
子程序调用特点:
- 子程序可以在多处被调用
- 子程序调用可以嵌套
- 与 指令配对使用
- 要妥善保存子程序的返回地址
陷阱(TRAP)指令
- 一旦机器运行出现意外故障(未定义指令、除0、设备故障、电压不稳),计算机发出陷阱信号(陷阱隐指令),暂停当前指令的执行,转入故障处理程序。陷阱指令不提供给用户使用,由机器自动执行。
- 也有某些机器提供陷阱指令,例如 IBM-PC 提供的 INT xx 软中断指令,用来完成系统调用。
五、输入输出指令
对 I/O 单独编址对计算机,设置有专门的输入输出指令,用来操纵外设,如下所示。
- (外设端口 CPU 的寄存器)
- (CPU 的寄存器 外设端口)
六、其他指令
- 停机指令、空操作指令、开中断指令、关中断指令、置条件码指令
- 字符串传送、字符串比较、字符串查询
- 特权指令(操作系统用)
- 向量指令
- 多处理机指令