Alright, I noted it but I really cant say much else until I knwoo which address is which... Fyi I changed some things to my liking.. it still does the same thing.
Code:
ldr r1, Addy1 @Load Addy1 into r1
mov r5,#0x0 @mov 0x0 into r5
mov r0,#0x8 @mov 0x8 into r0
mov r2,#0xF @mov 0xF into r2
loop:
ldrb r3,[r1] @load byte from r1 into r3
add r1,#0x1 @add 0x1 into r1
cmp r3,#0x3A @compare r3 to 0x3A
blt number @if less less than go to number
add r3,#0x9 @Otherwise, add 0x9
number:
and r3,r2 @and r3,r2
lsl r3,r0 @logical shift left, multiplies by two for every shift
add r5,r3 @add r3 to r5 (why bother with this...?)
sub r0,#0x4 @subtract 0x4 from r0
bpl loop @branch if plus go to loop
ldr r2, Addy2 @load Addy2 into r2
strb r5,[r2] @Store byte of r5 into r2
bx lr
Addy1:
.long 0x022AF136 @what address is this...?
Addy2:
.long 0x021D9018 @same as comment above...