十进制调整指令用来对BCD码的加法运算结果自动进行修正,但BCD码的减法运算不能用此指令来进行修正。十进制调整的实质是将十六进制的加法运算转换成十进制。
压缩指令压缩BCD码调整指令加法的调整指令DAA指令格式:DAA功能:如果AL寄存器中低4位大于9或辅助进位(AF)=1,则(AL)=(AL)+6且(AF)=1;如果(AL)>=0AOH或(CF)=1,则(AL)=(AL)+60H且(CF)=1。同时,SF、ZF、PF均有影响。减法的整指令DAS指令格式:DAS功能:如果(AF)=1或AL寄存器中低4位大于9,则(AL)=(AL)一6且(AF)=1;如果(AL)>=0AOH或(CF)=1,则(AL)=(AL)一60H且(CF)=1。同时SF、ZF、PF均受影响。
非压缩指令非压缩BCD码调整指令加法的调整指令AAA指令格式:AAA功能:如果AL的低4位大于9或(AF)=1,则:(AL)=(AL)+6(AH)=(AH)+1(AF)=(CF)=1且AL高4位清零。否则:(CF)=(AF)=0,AL高4位清零。减法的调整指令AAS指令格式:AAS功能:如果AL的低4位大于9或(AF)=1,则:(AL)=(AL)一6(AH)=(AH)一1(AF)=(cF)=1AL高4位清零。否则:(CF)=(AF)=0,AL高4位清零。其他标志位OF、PF、SF、ZF不确定。
乘法的调整指令AAM指令格式:AAM功能:被调整的乘积在AX中,对AL按10取模,则:(AL)/0AH-AH(商):AL(余数),其中AH为商,AL为余数,标志位AF、CF、OF、PF、SF、ZF受影响。
除法的调整指令AAD指令格式:AAD功能:除法运算前,先调整被除数AX内容,使:(AL)=(AL)+(AH)*0AH(AH)=0即把非压缩型十进制数变成二进制数。