加法
加1指令INC
- INC OPD
- 将目的操作数加1
- (OPD)+1---->OPD
不带进位的加指令ADD
- ADD OPD,OPS
- 将目的操作数与源操作数相加,将结果存入目的地址中,源地址的内容不变。
- (OPD)+(OPS)---->OPD
带进位加指令ADC
- ADC OPD,OPS
- 将目的操作数加源操作数再加低位进位,结果送目的地址。
- (OPD)+(OPS)+CF---->OPD
减法
减1指令DEC
- DEC OPD
- 将目的操作数减1,结果送入目的地址。
- (OPD)-1---->OPD
不带借位的减指令SUB
- SUB OPD,OPS
- 目的操作数减源操作数,结果存于目的地址,源地址内容不变。
- (OPD)-(OPS)---->OPD
带借位减指令SBB
- SBB OPD,OPS
- 目的操作数减源操作数再减低位借位CF,结果送入目的地址。
- (OPD)-(OPS)-CF---->OPD
求补指令NEG
- NEG OPD
- 将目的操作数的每一位求反(包括符号位)后加1,结果送目的地址(将零减去指定的8位或16位目的操作数,并将结果送回目的操作数单元)。
- (OPD)(求反)+1---->OPD
比较指令CMP
- CMP OPD,OPS
- 目的操作数减源操作数,结果只影响标志位,不送入目的地址,即只进行(OPD)-(OPS)操作。
乘法
无符号数乘法指令MUL
- MUL OPS
- 若是字节数相乘,(AL)与OPS相乘得到字数据存入AX中;若是字数据相乘,则(AX)与OPS相乘得到双字数据,高字存入DX,低字存入AX中。其中,OPS为寄存器或存储单元。
- 字节乘法:(AL)*(OPS)---->AX
- 字乘法:(AX)*(OPS)---->DX,AX
有符号乘法指令IMUL
- IMUL OPS
- 字节乘法功能指令为(AX)*(OPS)---->AX
- 字乘法功能指令为(AX)*(OPS)---->DX,AX
除法
无符号除指令DIV
- DIV OPS
- 字节除法功能指令为(AX)/(OPS)---->AL(商),AH(余数)
- 字除法功能指令为(DX、AX)/(OPS)---->AX(商),DX(余数)
- 其中OPS为寄存器或存储单元
有符号数除指令IDIV
- IDIV OPS
- 字节除法功能指令为(AX)/(OPS)---->AL(商),AH(余数)
- 字除法功能指令为(DX、AX)/(OPS)---->AX(商),DX(余数)
符号扩展指令
字节转换成字指令CBW
- CBW
- 将AL中的符号位数据扩展至AH。若AL的最高位为1,则把FFH存入AH,否则把00H存入AH。
- 在执行IMUL或IDIV指令之前,该指令可用于扩展AL的内容。
字转换成双字指令CWD
- CWD
- 将AX中的符号位数据扩展至DX。若AX最高位为1,则把FFFFH存入DX,否则把0000H存入DX.
- 在执行IDIV指令之前用于扩展AX的内容。