依据“ARM-thumb 进程调用规范”:
r0-r3用作传入函数参数,传出函数回来值。在子程序调用之间,能够将 r0-r3 用于任何用处。
被调用函数在回来之前不用康复 r0-r3。假如调用函数需求再次运用 r0-r3 的内容,则它有必要保存这些内容。
r4-r11被用来寄存函数的局部变量。假如被调用函数运用了这些寄存器,它在回来之前有必要康复这些寄存器的值。
r12是内部调用暂时寄存器 ip。它在进程链接胶合代码(例如,交互操作胶合代码)顶用于此人物。
在进程调用之间,能够将它用于任何用处。被调用函数在回来之前不用康复 r12。
13是栈指针 sp。它不能用于任何其它用处。sp 中寄存的值在退出被调用函数时有必要与进入时的值相同。
r14是链接寄存器 lr。假如您保存了回来地址,则能够在调用之间将 r14 用于其它用处,程序回来时要康复
r15是程序计数器 PC。它不能用于任何其它用处。
留意:在中止程序中,一切的寄存器都有必要维护,编译器会主动维护R4~R11