一次性掌握计算机中常见的六类指令

一、数据传送类指令

数据传送类指令主要分为 “源地址” 和 “目的地址” 两个部分。

  1. 寄存器-寄存器 M O V MOV A X , B X AX, BX
  2. 寄存器-存储器 M O V MOV [ 20 ] , A X [20], AX S T O R E STORE 指令)
  3. 存储器-寄存器 M O V MOV A X , [ 20 ] AX, [20] L O A D LOAD 指令)
  4. 存储器-存储器 M O V MOV [ 20 ] , [ 30 ] [20], [30]
  5. 堆栈操作: P U S H PUSH A X AX (入栈), P O P POP A X AX (出栈)
  6. 清零、置1: M O V MOV A X , 0 AX,0 (清零), M O V MOV A X , 1 AX,1 (置1)

二、运算类指令

算术运算

加、减、乘、除、求补、浮点、十进制运算

  • A D D ADD A X , 20 AX, 20
  • D I V DIV A X , 3 AX, 3

逻辑运算

与、或、非、异或

  • A N D AND A X , 30 AX, 30
  • X O R XOR A X , 30 AX, 30

其他运算

位测试、位清楚、位求反


三、移位指令

一般来说,有 8 种移位指令:
算术左移、算术右移、逻辑左移、逻辑右移、小循环左移、小循环右移、大循环左移、大循环右移。


四、转移指令

无条件转移指令

直接跳转到某处,不取决于任何条件。类似 C 中的 goto 语句,例如 JMP LOOP。

条件转移指令

根据机器当前的程序状态字中的某位来决定是否执行转移,例如 J Z JZ L O O P LOOP

J Z JZ L O O P LOOP : 如果当前指令运算结果为0,则会跳转到 LOOP 标号处。

调用与返回指令

类比 C 程序中的函数调用,以及函数返回。例如 C A L L P R O 1 CALL PRO1 R E T RET

子程序调用特点:

  1. 子程序可以在多处被调用
  2. 子程序调用可以嵌套
  3. C A L L CALL R E T RET 指令配对使用
  4. 要妥善保存子程序的返回地址

陷阱(TRAP)指令

  • 一旦机器运行出现意外故障(未定义指令、除0、设备故障、电压不稳),计算机发出陷阱信号(陷阱隐指令),暂停当前指令的执行,转入故障处理程序。陷阱指令不提供给用户使用,由机器自动执行。
  • 也有某些机器提供陷阱指令,例如 IBM-PC 提供的 INT xx 软中断指令,用来完成系统调用。

五、输入输出指令

对 I/O 单独编址对计算机,设置有专门的输入输出指令,用来操纵外设,如下所示。

  • I N IN A X , [ 20 ] AX, [20] (外设端口 \rightarrow CPU 的寄存器)
  • O U T OUT D X , A X DX, AX (CPU 的寄存器 \rightarrow 外设端口)

六、其他指令

  1. 停机指令、空操作指令、开中断指令、关中断指令、置条件码指令
  2. 字符串传送、字符串比较、字符串查询
  3. 特权指令(操作系统用)
  4. 向量指令
  5. 多处理机指令
参考资料: MOOC
发布了244 篇原创文章 · 获赞 115 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_41552508/article/details/103724599