BCD码调整指令是一条专用的指令
发布时间:2016/7/10 18:12:25 访问次数:1899
BCD码调整指令是一条专用的指令,用来实JCP8039-3现s021BCD码加法结果的调整,此指令为DA A
这条指令对累加器A参与的BCD码加法运算结果进行十进制调整,使累加器A中的内容调整为两位压缩型BCD码的数,同时PsW中的CY表示结果的百位值。
使用时必须注意,它只能跟在加法指令之后。
DA A调整步骤:若A中的低4位大于9或辅助进位标志AC为“1”,则低4位加6;同样,A中的高4位大于9或进位标志CY为“1”,高4位加6。
在gOc51中没有十进制减法调整指令,因此要用适当的方法编写程序段来进行十进制减法运算的BCD码调整。
【例4.2"若A=49H,执行指令ADD A,#6BH的标志位结果是什么?
解 直接相加: 。 由于两个正数相加结果为负数,表示出现了溢出,故oV=1;同时可以看到进位标志CY=0。在相加过程中,由于第3位相加产生对第4位的进位,故AC=1。又因为相加后A中的l的数目为偶数,故P=0。所以,结果是:A=B4H(溢出),oV=l,CY=0,AC=1,P=0。
BCD码调整指令是一条专用的指令,用来实JCP8039-3现s021BCD码加法结果的调整,此指令为DA A
这条指令对累加器A参与的BCD码加法运算结果进行十进制调整,使累加器A中的内容调整为两位压缩型BCD码的数,同时PsW中的CY表示结果的百位值。
使用时必须注意,它只能跟在加法指令之后。
DA A调整步骤:若A中的低4位大于9或辅助进位标志AC为“1”,则低4位加6;同样,A中的高4位大于9或进位标志CY为“1”,高4位加6。
在gOc51中没有十进制减法调整指令,因此要用适当的方法编写程序段来进行十进制减法运算的BCD码调整。
【例4.2"若A=49H,执行指令ADD A,#6BH的标志位结果是什么?
解 直接相加: 。 由于两个正数相加结果为负数,表示出现了溢出,故oV=1;同时可以看到进位标志CY=0。在相加过程中,由于第3位相加产生对第4位的进位,故AC=1。又因为相加后A中的l的数目为偶数,故P=0。所以,结果是:A=B4H(溢出),oV=l,CY=0,AC=1,P=0。
热门点击