[an error occurred while processing this directive]
|
;===
;IN: R0-src addr, R1-dst addr, R2-src_len_bit[R2<0..3>=0], R3-dst_len_byte;B-tmp cnt reg
;R4-tmp shiftBinToBCD: mov B,R3
bintobcd_clr: mov @R1,#0
inc R1
djnz B,bintobcd_clr
dec R1
jmp btobcd_2btobcd_0: mov B,R3
clr C
btobcd_1: mov A,@R1
addc A,ACC
da A
mov @R1,A
dec R1
djnz B,btobcd_1mov A,R1
add A,R3
mov R1,Amov A,R2
anl A,#7
jnz btobcd_3btobcd_2: mov A,@R0
inc R0
mov R4,Abtobcd_3: mov A,R4
rlc A
mov R4,Ajnc btobcd_4
inc @R1btobcd_4: djnz R2,btobcd_0
ret
;===
;IN: R0-addr, B-size*2
LCDPutBCD: clr F0
lcdpbcd_0: mov A,@R0
inc R0
jb B.0,lcdpbcd_1
swap A
dec R0
lcdpbcd_1: anl A,#0Fh
jb F0,lcdpbcd_2
jz lcdpbcd_3
setb F0
lcdpbcd_2: add A,#'0'
call LCDPutChar
lcdpbcd_3: djnz B,lcdpbcd_0
jb F0,lcdpbcd_4
mov A,#'0'
call LCDPutCharlcdpbcd_4: ret
E-mail: info@telesys.ru