sp
contains the stack pointer,lr
(link register) contains the return address,a1
to a4
are used to store the arguments and results of a subroutine.Additionally:
sp
mod 8 == 0.lr
onto the stack,fp
onto the stack, thensp
into fp
.stmdb sp!, {fp, lr} mov fp, sp
ldmia sp!, {fp, lr} bx lr