Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;r0 = value to check
- ;r1 = offset for ldr/str
- ;r2 = counting for loops/conditions
- ;r3 = tmp register for shifting
- ;r4 = result
- main:
- mov r0, #0x44
- mov r1, #0x1000
- mov r2, #0
- mov r3, #0
- setup:
- cmp r2, #4 ;just write ABCD to 0x1000 for test
- beq clear
- strb r0, [r1, r2]
- sub r0, r0, #1
- add r2, r2, #1
- b setup
- clear:
- eor r0, r0, r0
- eor r1, r1, r1
- eor r1, r1, r1
- eor r2, r2, r2
- b hex
- hex:
- mov r1, #0x1000
- ldrb r0, [r1, r2]
- cmp r0, #0x67
- bgt zero
- cmp r0, #0x3A
- addgt r0, r0, #9
- and r0, r0, #0xF
- b shift
- zero:
- mov r0, #0
- b shift
- shift:
- lsl r0, r0, r3
- orr r4, r4, r0
- add r2, r2, #1
- add r3, r3, #4
- cmp r2, #4
- bne hex
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement