|
extern void BCD (unsigned, uchar *);RSEG CODE
PUBLIC BCD
; Input: unsigned in R12
; Output: 5 bytes at (0)R14... (4)R14BCD:
push R12
clr R13
clr R12
MOV #16,R15
BCDLoop:
RLA 0(SP)
DADD R12,R12
DADD R13,R13
DEC R15
JNZ BCDLoop
mov.b R12,4(R14) ;Buffer[4]
and.b #0x0F,4(R14)
mov.b R13,0(R14) ;Buffer[0]
and.b #0x0F,0(R14)
swpb R12
mov.b R12,2(R14) ;Buffer[2]
and.b #0x0F,2(R14)
rra R12
rra R12
rra R12
rra R12
mov.b R12,1(R14) ;Buffer[3]
and.b #0x0F,1(R14)
swpb R12
mov.b R12,3(R14) ;Buffer[1]
and.b #0x0F,3(R14)
pop R12
ret
E-mail: info@telesys.ru