📄 asslandat50.dat
字号:
带进位加法指令ADC(Addition Carry)
指令格式:ADC OPRD1,OPRD2
指令功能:
其中OPRD1为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,而且还可以是任意一个存储器操作数。这给程序的编写带来了很 大的方便。
OPRD2为立即数,也可以是任意一个通用寄存器操作数。立即数只能用于源操作数。
OPRD1和OPRD2均为寄存器是允许的,一个为寄存器而另一个为存储器也是允许的,但不允许两个都是存储器操作数。理由是指令代码的寻址 方式中规定了两个操作数(除立即数)至少有一个是寄存器操作数。
加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响。以上标志也称为结果标志。加法指令适用于无符号数或有符号数的加法运算。 操作数可以是8位,也可以是16位。
这条指令的功能是:OPRD1<--OPRD1+OPRD2+CF。
该指令对标志位的影响同ADD指令。
例如:ADC AL,CL; (AL)<--(AL)+(CL)+CF
ADC AX,SI; (AX)<--(SI)+CF
ADC DX,MEMA;(DX)<--(DX)+[(DS)*16+MEMA]+CF
ADC CL,15; (CL)<--(CL)+15+CF
ADC WORD PTR[BX][SI],25
本指令适用无符号数及带符号数的8位或16位运算。
例如两个数据字已分别放在ONE1和TWO1开始的存储区中,存放时低字在前,高字在后,实现二数相加的程序为:
MOV AX,ONE1
ADD AX,TWO1
MOV THR1,AX;存结果至THR1存储区
MOV AX,ONE1+2
ADC AX,TWO1+2
MOV THR1+2,AX
由于两个存储器操作数不能直接相加,因而不能过ADD ONE1,TWO1进行。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -