例3.19 MOV
BX,9B8CH ; (BX)=9B8CH
ADD BX,6478H ; now (BX)=0000H
9B8A 1001 1011 1000 1010
+ 6476 + 0110 0100 0111 0110
----------- --------------------------
1← 0000 1← 0000 0000 0000 0000
条件码设置: SF=0 最高有效位(D15)为0
ZF=1 结果为0
CF=1 最高有效位向高位有进位
OF=0 不同符号数相加,不产生溢出
例3.20 编写执行双精度数(DX,CX)和(BX,AX)相加的指令序列,DX是目的操作数的高位字,BX是源操作数的高位字。指令执行前:
(DX,CX)= A248 2AC0H,(BX,AX)= 088A E25BH。
指令序列: ADD CX, AX ;(CX)= 0D1BH
ADC DX, BX ; now,(DX)=0AAD3H
执行ADD指令:
2AC0 0010 1010 1100 0000
+ E25B + 1110 0010 0101 1011
--------- ------------------------
1← 0D1B 1← 0000 1101 0001 1011
条件码设置: SF=0 最高有效位(D15)为0,无符号位意义
F=0 结果不为0
CF=1 最高有效位向高位有进位
OF=0 加数最高位分别为0、1,溢出位置0,OF对低位字无溢出意义
执行ADC指令:
A248 1010 0010 0100 1000
088A 0000 1000 1000 1011
+ 1 + 1←CF
---------- ----------------------------
AAD3 1010 1010 1101 0011
条件码设置: SF=1 最高有效位(D31)为1,对带符号数运算表示结果为负
ZF=0 结果不为0
CF=0 最高有效位向高位无进位
OF=0 结果符号与操作数相同,未产生溢出