
一般转换方法是:转入换数X=abcde(5位BCD数)
X= abcde=10[10[10[10a+b]+c]+d]+e
采用此方式,以高次向低位依次进行二进制的处理调整。
定义 H-byte=0X10
L-byte=0X11
R0 =0X12
R1 =0X13
R2 =0X14
H-temp=0x15
L-temp=0X16
BCDTOB CLR H-byte
MOV A ,R0
and A ,@0X0FH
mov L-byte A
call Mpy10b ; 结果=10a+b
swapaA R1
call Mpy10b ;结果=10[10a+b]
mov A, R1
call Mpy10b;结果=10[10[10a+b]+c]
swapA R2
call Mpy10b ;结果=10[10[10[10a+b]+c]+d]
mov A, R2
and A,@0X0FH
add L-byte, A
JBC STATUS,C
JZ H-byte;果=10[10[10[10a+b]+C]+d+e
RET ;BCD 到BIN转换结束 Mpy10b and A,@OXOFH
add L-byte,A
JBC STATUS,C
JZ H-byte
Mpy10a BC STATUS,C;单元及进行除2处理
RLCA L-byte
MOV L-TEMP,A
RLCA H-byte ;最低位调整,
MOV H-temp,A ;
BC STATUS,C 逐步进行除2处理
RLC L-byte
RLC H-byte
BC STATDS,C 进行第三位二进制处理
RLC L-byte
RLC H-byte
BC STATUS,C ;进行第四位三进制处理
RLC L-byte
RLC H-byte ;一直到第四位
MOV A,L-temp
ADD A,L-byte
JBC STATUS,C
INC H-byte
MOV A,H-temp
ADD H-byte,A
RET
主程序
main mov A, @0x60
mov R0, A
mov A, @0x55
mov R1, A
mov A, @0x35
mov R2, A
call BCDTOB
self goto self
end