blob: 83f8d8d7d41d082d9ebf9762b5ab57aae446397e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
.syntax unified
.cpu cortex-m0plus
.thumb
.type statement, %function
.global statement
// 1 reported an error
// R1 input buffer
// R2 output buffer
statement:PUSH {LR}
BL whitespace
BL label
CMP R0, #2 // check for error code 2 (no colon)
BNE 1f
ADR R0, no_colon
B err_exit
1: BL whitespace
BL opcode
BEQ 2f
ADR R0, no_opcode
B err_exit
2: MOVS R0, #0
POP {PC}
err_exit: BL putstrln
MOVS R0, #1 // return code 1 (there was an error)
POP {PC}
.align 4
no_colon: .asciz "Error: Expected colon at end of label"
.align 4
no_opcode: .asciz "Error: Expected an opcode"
|