APCS register bindings for the variant of APCS I'm using here : -apcs 3/32/fp/noswst Name Number APCS Role a1 0 argument 1 / integer result / scratch register a2 1 argument 2 / scratch register a3 2 argument 3 / scratch register a4 3 argument 4 / scratch register v1 4 register variable v2 5 register variable v3 6 register variable v4 7 register variable v5 8 register variable v6 9 register variable v7 10 register variable fp 11 frame pointer ip 12 scratch register sp 13 lower end of current stack frame lr 14 link address / scratch register pc 15 program counter