diff options
Diffstat (limited to 'assembler/octal.s')
-rw-r--r-- | assembler/octal.s | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/assembler/octal.s b/assembler/octal.s new file mode 100644 index 0000000..7382ca4 --- /dev/null +++ b/assembler/octal.s @@ -0,0 +1,25 @@ +octal: + PUSH {LR} +10: + BL get_char + MOVS R1, '0 + CMP R0, R1 + BNE 10b + BL uart_send + MOVS R4, 0 +20: + BL get_char + BEQ 30f + MOVS R1, '0 + CMP R0, R1 + BLO 20b + MOVS R1, '7 + CMP R0, R1 + BHI 20b + BL uart_send + SUBS R0, '0 + LSLS R4, 3 + ADDS R4, R0 + B 20b +30: + POP {PC} |