算术运算指令
表2 算术运算类指令一览表
指令类型
指令
指令功能
加法
SUB d, s
SBB d, s
DEC d
NEG d
CMP d, s
加法(d)(d)+(s)
带进位加法(d)(d)+(s)+CF
加1 (d)(d)+1
减法
ADD d, s
ADC d, s
INC d
减法(d)(d)-(s)
带借位减法(d)(d)-(s)-CF
减1 (d)(d)-1
取负(求补) (d) 0-(d)
比较(d)-(s)
乘法
MUL s
IMUL s
无符号数乘法
带符号数乘法
字节:(AX) (AL)*(s)
字:(DX:AX) (AX)*(s)
算术运算指令
表2 算术运算类指令一览表( 续)
指令类型
指令
指令功能
除法
DIV s
IDIV s
CBW
CWD
无符号数除法
带符号数除法
字节扩展成字
字扩展成双字
字节:(AL) (AX)/(s)的商
(AH) (AX)/(s)余数
字: (AX) (DX:AX ) /(s)的商
(DX) (DX:AX ) /(s)余数
AL的符号位扩展至AH
AX的符号位扩展至DX
十进制调整
AAA
DAA
AAS
DAS
AAM
AAD
加法分离BCD码调整
加法组合BCD码调整
减法分离BCD码调整
减法组合BCD码调整
乘法分离BCD码调整
减法分离BCD码调整
加法指令
共3条:
ADD 加法
ADC 带进位加法
INC 加 1指令
加法指令
ADD 指令•基本格式和功能
指令格式: ADD DST, SRC
执行的操作: (DST)←(DST)+(SRC)
寻址方式: ADD mem/reg, mem/reg/data
加法指令
ADD 指令•说明
相加操作影响标志位OF、SF、ZF、AF、PF、CF。
src可以为通用寄存器、存储器或立即数。
dest可以是通用寄存器或存储器,但不能是立即数。
src 和dest不能同时为存储器操作数。
src 和dest不能使用段寄存器。
可进行8位或者16位的加法,但d与s长度要相同。
相加后源操作数不变。
加法指令
ADD 指令•例子
例1:指令举例:
ADD AX,0FF00H
ADD Byte PTR [SI],13H
ADD AX,BX
例2:错误的指令:
ADD AX,BL
ADD [SI+3],[BX][DI]
ADD DS,DX
加法指令
ADC 指令•基本格式和功能
指令格式: ADC DST, SRC
执行的操作:
(DST) ←(DST)+(SRC)+CF
寻址方式:
ADC mem/reg, mem/reg/data
加法指令
ADC 指令•说明
与ADD指令一样,ADC同样影响 6个状态标志位。
其中CF在指令中参与计算,计算后根据结果重新设置CF的值。
加法指令
ADC指令•用途
ADC指令常用在多字节数相加的场合,利用CF把低字节的进位加到高字节中去。
加法指令
ADC指令•例子
例:用指令实现以下两个32位数的相加运算:
107C932AH+55667788H
解:
MOV AX, 932AH
MOV BX, 107CH
ADD AX, 7788H
ADC BX, 5566H
的指令系统算术运算修改 来自淘豆网m.daumloan.com转载请标明出处.