blob: af2f641ebce013eb91a4dbd16fd95fe795ee3b6f (
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
|
.syntax unified
.cpu cortex-m0plus
.thumb
.type label, %function
.global label
// 1 unexpected begin char
// 2 doesn't end with colon
// R1 input buffer
// R2 output buffer
label: PUSH {LR}
LDRB R0, [R1] // get a char
CMP R0, 0x61 // a
BLO 1f
CMP R0, 0x7A // z
BLS 2f
1: MOVS R0, #1 // return code 1 (expected lowercase)
POP {PC}
2: BL symbol
LDRB R0, [R1] // get a char
CMP R0, ': // colon
BEQ 3f
MOVS R0, #2 // return code 2 (expected colon)
POP {PC}
3: ADDS R1, 1 // consume the colon
MOVS R0, #0 // return code 0 (success)
POP {PC}
|