1.带进位加法指令(ADC,Add with Carry)

指令格式
image.png
指令的动作
image.png
把目标DST、源SRC和进位标志CF相加, 结果送到目标DST。
该指令实现带进位的加操作。
注意:源和目标的尺寸必须一致。

  1. .386
  2. .model flat,C
  3. .code
  4. start:
  5. sub eax,eax
  6. adc eax,2
  7. stc
  8. adc eax,2
  9. end start
  1. #include<stdio.h>
  2. int main()
  3. {
  4. unsigned char vch1=188,vch2=172,vch3=233;
  5. unsigned int sum=0;
  6. _asm{
  7. sub edx,edx
  8. add dl,vch1
  9. adc dh,0
  10. add dl,vch2
  11. adc dh,0
  12. add dl,vch3
  13. adc dh,0
  14. mov sum,edx
  15. }
  16. printf("sum=%u\n",sum); //sum=593
  17. return 0;
  18. }

2.带借位减法指令(SBB,SuBtraction with Borrow)

SBB指令的一般格式( Integer Subtraction with borrow
image.png
SBB指令的动作
image.png
把目标DST减去源SRC和借位标志CF,结果送到目标DST
该指令实现带借位减操作。
注意:源和目标的尺寸必须一致。