汇编 DA A十进制调整指令 您所在的位置:网站首页 daa是什么指令 汇编 DA A十进制调整指令

汇编 DA A十进制调整指令

2024-07-16 02:07| 来源: 网络整理| 查看: 265

         二进制加法指令不能完全适用于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 A

                0101  0110     (56H)

+)          0110  0111      (67H)

=             1011  1101                                   高四位和第四位都大于9 故要都加6来对结果修正、

+)          0110  0110

=          1  0010  0011

结果(A)=23H,Cy=1。

56+65=123 结果是正确的



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有