算术运算指令
8086的算术运算类指令能过对二进制或十进制(BCD码)数进行加,减,乘,除运算,操作数的数据形式可以是8位或16位的无符号数或带符号数
1.加法指令
①不带进位的加法指令:
格式: ADD OP目, OP源;
功能: OP目←OP源 + OP目, 根据结果设置标志位
例: ADD AL, 50H; AL+50H→AL
ADD DI, SI; DI+SI→DI
ADD AX, [DI]; (DI),(DI+1)内容 + AX → AX
ADD AX, [BX+2000H]; BX+2000H和BX+2001H所指单元内容和AX的内容相加,结果在AX中
注意:两操作数的类型相同,类型明确,不能同为存储器操作数.
②进位的加法指令:
格式: ADC OP目, OP源;
功能:OP目←OP源+OP目+CF, 置标志位
说明:主要用于多字节运算,多字节运算时低位字节产生的进位应加到高位.
例: ADC AX, SI; AX+SI+CF→AX
③加1指令
格式: INC OP
功能: OP←OP+1
说明:常用于修改偏移地址和计数次数.操作数可以是8/16位通用寄存器或存储器操作数,不能为立即数
例:
INC AL; AL←AL+1
INC BYTE PTR [BX+DI]; [BX+DI]←[BX+DI]+1 此种需要加声明,否则不行.
注意:
INC指令不影响CF位,影响标志位AF,OF,PF,SF,ZF
操作数视为无符号数