📅  最后修改于: 2023-12-03 14:38:54.307000             🧑  作者: Mango
在8086微处理器中,有许多用于进行算术运算的指令。这些指令涵盖了加法、减法、乘法、除法等运算,可以满足大部分应用场景需要。
ADD
ADD
指令用于将两个数相加,并将结果存储到目标操作数中。可以操作寄存器、内存地址和立即数。
语法:ADD dest,src
其中,dest
表示目标操作数,src
表示源操作数。
例如,将AX
和BX
中的值相加,并将结果存储到DX
和CX
中:
ADD DX,AX
ADD CX,BX
ADC
ADC
指令用于将两个数相加,并考虑进位。可以操作寄存器、内存地址和立即数。
语法:ADC dest,src
其中,dest
表示目标操作数,src
表示源操作数。
例如,将AX
和BX
中的值相加,并将结果存储到DX
和CX
中,考虑进位:
ADC DX,AX
ADC CX,BX
SUB
SUB
指令用于将两个数相减,并将结果存储到目标操作数中。可以操作寄存器、内存地址和立即数。
语法:SUB dest,src
其中,dest
表示目标操作数,src
表示源操作数。
例如,将AX
和BX
中的值相减,并将结果存储到DX
和CX
中:
SUB DX,AX
SUB CX,BX
SBB
SBB
指令用于将两个数相减,并考虑借位。可以操作寄存器、内存地址和立即数。
语法:SBB dest,src
其中,dest
表示目标操作数,src
表示源操作数。
例如,将AX
和BX
中的值相减,并将结果存储到DX
和CX
中,考虑借位:
SBB DX,AX
SBB CX,BX
MUL
MUL
指令用于将两个无符号数相乘,并将结果存储到一对通用寄存器中(低位存入目的寄存器,高位存入另一个寄存器)。可以操作寄存器和内存地址。
语法:MUL src
其中,src
表示源操作数,必须为寄存器或内存地址。
例如,将BX
中的值乘以AX
中的值,并将结果存储到DX
和AX
中:
MUL BX
IMUL
IMUL
指令用于将两个有符号数相乘,并将结果存储到一对通用寄存器中。可以操作寄存器和内存地址。
语法:IMUL src
其中,src
表示源操作数,必须为寄存器或内存地址。
例如,将BX
中的值乘以AX
中的值,并将结果存储到DX
和AX
中:
IMUL BX
DIV
DIV
指令用于将一个无符号数除以另一个无符号数,并将商存储在一个通用寄存器中,余数存储在另一个通用寄存器中。可以操作寄存器和内存地址。
语法:DIV src
其中,src
表示源操作数,必须为寄存器或内存地址。
例如,将AX
中的值除以BX
中的值,并将商存储到AX
中,余数存储到DX
中:
DIV BX
IDIV
IDIV
指令用于将一个有符号数除以另一个有符号数,并将商存储在一个通用寄存器中,余数存储在另一个通用寄存器中。可以操作寄存器和内存地址。
语法:IDIV src
其中,src
表示源操作数,必须为寄存器或内存地址。
例如,将AX
中的值除以BX
中的值,并将商存储到AX
中,余数存储到DX
中:
IDIV BX
以上就是8086微处理器中的常用算术指令,涵盖了加法、减法、乘法、除法等运算。在实际编程中,需要根据具体需求选用适当的指令,以便实现预期功能。