十进制调整指令DAA的功能以及调整过程是什么?

1个回答

  • 举个例子好过废话连篇:

    两个压缩的BCD数相加,如15H + 16H,结果为2BH,执行daa后,结果变为31H(就好像执行了一次10进制加法一样).

    压缩的BCD,意思是用4位来表示一个10进制数(0-9),这样一个字节就可以放两个压缩的BCD数.daa,具体含义是把al中的和调整为压缩的bcd格式,之前必须执行add或adc指令.而这加法指令必须把两个压缩的bcd数相加,把结果存放到al中.

    又如10H + 0FH,这样的不是标准的BCD数相加,使用daa后,还是按照daa的调整方式得到25H.