BinToBcd

segunda-feira, 3 de dezembro de 2007


por AlvaroLuiz


BinToBcd
========


Converter de Bin (Binário) para BCD (Decinal Codificado em Binário).
Programa simples que passa 1 byte bin para BCD, só vale numeros de 0x00 até 0x63, ou seja, de 0 até 99.



...
.def ra = r16
.def rb = r17
.def rc = r18
.def rd = r19
.def re = r20
...
;*****************************
;* BinToBcd 1 byte
;* inp ra(bin) out=ra (bcd)
;*****************************
BinToBc:
push rb
push rc
push rd
mov rb,ra
clr ra
ldi rc,8
BTB1:
rol rb
rol ra
dec rc
brne BTB2
pop rd
pop rc
pop rb
ret
BTB2:
push rb
mov rb,ra
ldi rd,3
add ra,rd ;subi ra,(0xff-2)
sbrc ra,3
mov rb,ra
mov ra,rb
ldi rd,0x30
add ra,rd ;subi ra,(0xff-0x2f)
sbrc ra,7
mov rb,ra
mov ra,rb
pop rb
rjmp BTB1
; ==========================================




Indice