AAA
作用:执行加法后的AL拆分为非组合BCD码,操作AH,AL
逻辑:如果 (AL的低四位大于9 或者 AF=1) 那么AH=AH+1,AL=AL+6,AL高四位清零,并且AF=1,CF=1,
如果都不满足则AL高四位清零,CF=0。
例1:
MOV AL,36H
MOV BL,36H
ADD AL,BL ;AF=1,AL=6CH
AAA ;因为满足AL低四位大于9且满足AF=1,所以AH=AH+1,AL(3-0)=AL(3-0)+6,AL(7-4)=0,AF=1,CF=1,
此时AH=AH+1,AL=02H;
例2:
MOV AL,39H
MOV BL,39H
ADD AL,BL ;AF=1,AL=72H
AAA ;因为满足AF=1,所以AH=AH+1,AL(3-0)=AL(3-0)+6,AL(7-4)=0,AF=1,CF=1,
;此时AH=AH+1,AL=08H
例3:
MOV AL,3CH
AAA ;满足AL低四位大于9,所以AH=AH+1,AL(3-0)=AL(3-0)+6,AL(7-4)=0,AF=1,CF=1,
;此时AH=AH+1,AL=02H
例4:
MOV AL,30H
MOV BL,36H
ADD AL,BL ;AF=1,AL=66H
AAA ;因为不满足AL低四位大于9也不满足AF=1,所以AL(7-4)=0;
;此时AH不变,AL=06H
若AH初始值为00H,则前三个例子AH=01H
若AH初始值为0FFH,则前三个例子AH=00H