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

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

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, OFADD AX, 5
SUB减法CF, ZF, SF, OFSUB BX, CX
MUL无符号乘法CF, OFMUL 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)