일단 str 인스트럭션 동작을 잘 모르겠습니다
ARM System Developer's Guide에서의 설명을 보면,
; store the contents of register r0 to the memory address pointed to by register r1.
STR r0, [r1] ; = STR r0, [r1, #0]
The instruction goes the other way by storing the contents of register
r0 to the address contained in register r1. The offset from register r1 is zero. Register r1 is
called the base address register.