给你一个比较好理解的十六进制转换为BCD码的程序。
BCDT:
MOV R5,#16 ;设置计数值
CLR A
MOV R2,A ;存放结果寄存器清零
MOV R3,A
MOV R4,A
MOV R6,TH1
MOV R7,TL1
LOOP:
CLR C
MOV A,R7 ;取被转换二进制数乘二
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R4 ;乘2加c后经十进制调整转
ADDC A,R4 ;换成BCD码存入R2R3R4
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
DJNZ R5,LOOP
RET