16位二进制数转换成十进制BCD码,,设R6R7的内容为16进制数,要求转换结果存入R2R3R4
程序如下:MOV
ORG 8000H
BCDT: MOV R5,#16;设置计数值
CLR A
MOV R2,A;存放结果寄存器清0
MOV R3,A
MOV R4,A
LOOP:CLR C
MOV A,R7;取被转换二进制数乘2
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R4;乘2加b后经十进制调整后转换成BCD码存R2R3R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
DA A
MOV R3,A
MOV A,R2
ADDC A,R2
DA A
MOV R2,A
ADDC A,R2
DA A
MOV R2,A
DJNZ R5,LOOP
RET
END
就这个书本上的程序,小弟看不懂为什么,烦请为小弟讲述具体过程,原理,带实例,和图更佳,万谢!