hay 16 registros en total, desde r0 hasta r15, pero no todos se pueden usar.
Los que no se pueden usar para cualquier cosa son:
r13: Que es el Stack Pointer. (SP)(El puntero de la pila)
r14: Que es el Link Register. (LR) (El que llama a una subrutina con retorno)
r15: Que es el Program Counter. (PC) (Es para volver a quitar del SP X registros)
Entonces, nos quedamos con 13 registros usables, desde r0 hasta r12.
Aunque si te soy sincero, nunca he hecho rutinas tan complicadas como para tener que usar los 13 a la vez.
Lo máximo han sido 5, y por "necesidad"..
Btw, es MUY sencillo, en los registros ya te lo expliqué, cargas registros o valores y juegas con ellos.
Mediante OPCode, tales como ADD, MOV, LDR, STR, ..etc.