首页 > 编程知识 正文

r14寄存器的作用(arm 64 32 寄存器 复用)

时间:2023-05-05 07:57:35 阅读:74663 作者:2544

根据《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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。