@ (set! arg 0)
        ldr    r0, =arg
        mov    r1, $0
        str    r1, [r0]
loop3:
@ (set! t0 0)
        ldr    r0, =t0
        mov    r1, $0
        str    r1, [r0]
@ (vector-set! buf arg t0)
        ldr    r0, =buf
        ldr    r1, =arg
        ldr    r1, [r1]
        add    r0, r0, r1, lsl $2
        ldr    r1, =t0
        ldr    r1, [r1]
        str    r1, [r0]
@ (set! arg (+ arg 1))
        ldr    r0, =arg
        ldr    r1, [r0]
        add    r0, r1, $1
        ldr    r1, =arg
        str    r0, [r1]
@ (< arg int_digits_plus_null)
        ldr    r0, =arg
        ldr    r0, [r0]
        ldr    r1, =int_digits_plus_null
        ldr    r1, [r1]
        cmp    r0, r1
        bge    .L51
@ (loop3)
        b      loop3
.L51:
@ (set! in_ch 32)
        ldr    r0, =in_ch
        mov    r1, $32
        str    r1, [r0]
@ (set! t0 0)
        mov    r1, $0 @ intialize each word to zero
        ldr    r3, =STACK_SIZE
        ldr    r3, [r3]
@ address of stack
        ldr    r8, =stack
        mov    r0, r8
        add    r2, r8, r3, lsl $2
@ TODO remove
@set_stack_loop:
@@ (< t0 STACK_SIZE)
@        cmp    r0, r2
@        bge    .L52
@@ (vector-set! stack t0 FALSE)
@        str    r1, [r0], $4
@@ (set! t0 (+ t0 1))
@@ (set_stack_loop)
@        b      set_stack_loop
@.L52:

@ TODO remove
@@ (set! stack_idx 1)
@        mov    r3, $1
@ (set! eof_reached FALSE)
        mov    r1, $0
        ldr    r0, =eof_reached
        str    r1, [r0]
