aboutsummaryrefslogtreecommitdiff
path: root/assembler/register.s
diff options
context:
space:
mode:
Diffstat (limited to 'assembler/register.s')
-rw-r--r--assembler/register.s73
1 files changed, 33 insertions, 40 deletions
diff --git a/assembler/register.s b/assembler/register.s
index f8197fd..6728643 100644
--- a/assembler/register.s
+++ b/assembler/register.s
@@ -5,43 +5,36 @@
.type register, %function
.global register
-register:
- PUSH {LR}
- MOV R4, R0
- LSLS R4, 1
- ADDS R4, ('0 + 1)
-10:
- BL get_char
- CMP R0, 'R
- BNE 10b
- BL uart_send
-20:
- BL get_char
- CMP R0, '0
- BLO 20b
- CMP R0, R4
- BHI 20b
- BL uart_send
- CMP R0, '1
- BNE 30f
- CMP R4, '7
- BEQ 30f
-50:
- BL get_char
- BEQ 60f
- CMP R0, '0
- BLO 50b
- CMP R0, '5
- BHI 50b
- BL uart_send
- ADDS R0, 10
-30:
- SUBS R0, '0
- MOV R4, R0
-40:
- BL get_char
- BNE 40b
- POP {PC}
-60:
- MOVS R4, 1
- POP {PC}
+register: PUSH {LR}
+ MOV R4, R0
+ LSLS R4, 1
+ ADDS R4, ('0 + 1)
+10: BLX R10
+ CMP R0, 'R
+ BNE 10b
+ BLX R9
+20: BLX R10
+ CMP R0, '0
+ BLO 20b
+ CMP R0, R4
+ BHI 20b
+ BLX R9
+ CMP R0, '1
+ BNE 30f
+ CMP R4, '7
+ BEQ 30f
+50: BLX R10
+ BEQ 60f
+ CMP R0, '0
+ BLO 50b
+ CMP R0, '5
+ BHI 50b
+ BLX R9
+ ADDS R0, 10
+30: SUBS R0, '0
+ MOV R4, R0
+40: BLX R10
+ BNE 40b
+ POP {PC}
+60: MOVS R4, 1
+ POP {PC}