1、如果和的最低有效1位是一个>9的数,或DC位=1时将和加6(产生DC标志)。
2、完成步骤1后,如果最高有效1位表示>9的数,或者相加后C标志为1,将和加60H(即加6到MSD)。
注:扩展程序到2位数以上时,所有的加法都必须连C标志(或DC)一起相加,而且上面的原则都用到每个位数,从原数相加,步骤1、步骤2的加法所产生的进位都必须进位到下一位数。
1、流程图:

2、程序清单:

§2.3 二进制转换成BCD数
本程序将一个16位的二进数转换成一个5位数的BCD数。16位的二进制数放在寄存器S0、S1。S0放高位。5位数的BCD数输出到寄存器R0、R1、R2。MSD放在R0,LSD放在R2。
一个很简单的演算用来完成转换,二进制数向右移一位,一直到16位全部移完即完成转换。
否则每个BCD数被检查是否大于4,如果是则加3到该位数。上述的过程一直重复执行。

§2.4 BCD转换成二进制数
本程序将5位数的BCD转换成16位的二进制数。5位的BCD数R0、R1、R2。MSD 放在R0的最右位。16位的二进制数输出到寄存器S0、S1。S0存放高位
程序使用简单的演算完成转换。BCD数向右移一位到二进制数内,直到16位全部移位完才跳出程序。否则每一个BCD数被检查是否大于7,如果是则将该位数减3,重复上述过程到结束。

