8-bit HEX to ASCII Convertor
This subroutine converts 8 bit Hexadecimal number into its equivalent ASCII value. The number to be converted should be in the Accumulator. The output ASCII number is stored in R0, R1 and R2. R0 contains the MSB i.e. the Hundreds place, R1 contains the Tens Place and R2 contains the LSB i.e. the Units Place. |
|
The ASCII code for numbers 0-9 is 48-57 i.e. 30h – 39h |
|
hextoascii:
|
|
mov r0,#30h
mov r1,#30h
mov r2,#30h
|
|
cjne a,#00h,c1_hextobcd |
//check if number is 0 if not then continue |
ret |
|
|
|
c1_hextobcd:
|
|
clr c
|
|
mov b,#100
|
//divide by 100 |
div ab
|
|
orl a,r0
|
|
mov r0,a
|
//save 100th place in R0 |
clr c
|
|
mov a,b
|
|
mov b,#10
|
//Divide by 10 |
div ab
orl a,r1
|
|
mov r1,a
|
//Save 10th place in R1
|
mov a,b
|
|
orl a,r2
|
|
mov r2,a
|
//Save units place in R2 |
ret
|
|
|
|
.
Written by Administrator
Administrator
Administrator