mov r6, #low(12345) mov r7, #high(12345) call bcd mov r6, #low(0) mov r7, #high(0) call bcd mov r6, #low(65535) mov r7, #high(65535) call bcd jmp $ ;input: R7, R6 = value ;output: R7, R6, R5, R4, R3 = digits ;cycle: 1111 ;bytes: 31 ; using 0 bcd: mov a, r6 mov r1, a mov r0, #ar3 ;point to r3 ?bcd1: mov r2, #16 clr a ?bcd2: xch a, r1 add a, acc xch a, r1 xch a, r7 rlc a xch a, r7 rlc a cjne a, #10, ?bcd3 ?bcd3: jc ?bcd4 subb a, #10 inc r1 ?bcd4: djnz r2, ?bcd2 mov @r0, a inc r0 cjne r0, #ar7+1, ?bcd1 ret end