8086 指令系统全景图:数据传送、算术运算与逻辑操作

指令系统是汇编的词汇表。MOV/XCHG 数据传送,ADD/SUB/MUL/DIV 算术运算,AND/OR/XOR/NOT 逻辑操作。配合实战代码,帮你快速掌握 8086 最常用的 30 条指令。

2

8086 指令分类

8086 有一百多条指令,但常用的只有 30 多条。我们将它们分为三大类:

一、数据传送指令

指令 功能 示例
MOV 复制数据 MOV AX, BX
XCHG 交换数据 XCHG AL, BL
PUSH/POP 压栈/出栈 PUSH AX
LEA 加载有效地址 LEA BX, VAR

注意事项:

  • MOV 不能在两个内存单元之间直接传送
  • 段寄存器不能直接接收立即数
  • PUSH/POP 操作单位是字(16 位)

二、算术运算指令

指令 功能 影响标志位 示例
ADD 加法 CF, ZF, SF, OF ADD AX, 5
SUB 减法 CF, ZF, SF, OF SUB BX, CX
MUL 无符号乘法 CF, OF MUL BL
DIV 无符号除法 异常 DIV CX

乘除法细节:

  • MUL BL:AL × BL → AX
  • DIV CX:DX:AX ÷ CX → AX(商) DX(余数)

三、逻辑运算指令

指令 功能 示例 应用场景
AND 按位与 AND AL, 0Fh 清零高 4 位
OR 按位或 OR AH, 80h 设置最高位
XOR 按位异或 XOR AX, AX 快速清零
NOT 按位取反 NOT AL 求反码
SHL/SHR 逻辑移位 SHL AL, 1 ×2 或 ÷2

实战:用 XOR 清零

1
XOR AX, AX   ; 比 MOV AX, 0 更快,且只占 2 字节

这是汇编优化中的经典技巧,也是现代编译器常用的优化手段。

总结

掌握这 30 条指令,你就能写出 80% 的汇编程序。剩下的指令多在特定场景下使用。

下一篇:《寻址方式终极指南:7 种寻址模式与性能分析》

广告
广告位预留中 (728x90)