作者:时尚妈咪达人都_354 | 来源:互联网 | 2023-10-11 21:34
根据“ARM-thumb过程调用标准”:r0-r3用作传入函数参数,传出函数返回值。如果调用函数需要再次使用r0-r3的内容,则它必须保留这些内容。它在过程链接胶合代码中用
根据《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