汇编 DA A十进制调整指令 | 您所在的位置:网站首页 › daa是什么指令 › 汇编 DA A十进制调整指令 |
二进制加法指令不能完全适用于BCD码十进制的加法运算,故应对压缩的BCD码的加法结果需要进行有条件的修正。 出错原因及调整方法BCD码(4位二进制编码)共有十六个编码,但只用了其中的10个,剩余六个就没有用到。而这六个没有用到的编码为无效编码。故1位BCD码加法运算出错的情况有两种: 1)相加结果大于9无进位,及已经进入无效编码区; 2)相加结果有进位,及已经跳过无效编码区; 无论哪一种出错情况,都是因为六个无效编码造成的。 调整方法是把运算结果加6调整,即所谓的十进制调整修正。 修正方法1)累加器低四位大于9或辅助进位位Ac=1,则进行低四位加6修正。 2)累加器高四位大于9或进位位Cy=1,则进行高四位加6修正。 3)累加器高四位为9,低四位大于9,则高四位和低四位分别加6修正。 整个过程由DA A可自动实现 举例(A)=56H,(R5)=67H,把他们看作两个压缩的BCD数进行BCD数加法。 执行指令: ADD A,R5 DA A0101 0110 (56H) +) 0110 0111 (67H) = 1011 1101 高四位和第四位都大于9 故要都加6来对结果修正、 +) 0110 0110 = 1 0010 0011 结果(A)=23H,Cy=1。 56+65=123 结果是正确的 |
CopyRight 2018-2019 实验室设备网 版权所有 |