ARM64提供了31个通用寄存器,其用途如下表:
x0~x7:传递子程序的参数和返回值,使用时不需要保存,多余的参数用堆栈传递,64位的返回结果保存在x0中。
x8:用于保存子程序的返回地址,使用时不需要保存。
x9~x15:临时寄存器,也叫可变寄存器,子程序使用时不需要保存。
x16~x17:子程序内部调用寄存器(IPx),使用时不需要保存,尽量不要使用。
x18:平台寄存器,它的使用与平台相关,尽量不要使用。
x19~x28:临时寄存器,子程序使用时必须保存。
x29:帧指针寄存器(FP),用于连接栈帧,使用时必须保存。
x30:链接寄存器(LR),用于保存子程序的返回地址。
x31:堆栈指针寄存器(SP),用于指向每个函数的栈顶。
相关文章
- 基于 MCP 架构的知识库问答系统实战,已拿字节offer-6. 结论
- 基于事件驱动的云原生后端架构设计:从理念到落地
- 大数据:Hadoop(HDFS 的设计思路、设计目标、架构、副本机制、副本存放策略)
- Java面试实战:电商场景下的Spring Cloud微服务架构与缓存技术剖析
- Mysql中Keepalived+双主架构的详细讲解
- Python之爬虫(十四) Scrapy框架的架构和原理
- vmware vcsa-6.5 网络架构之虚拟机的分布式交换机
- transformer架构中 encoder decoder self-attention cross-attention的作用
- C#实现插件式架构的方法
- 当前主流的(2020年)前端+后端架构以及未来技术演进方向趋势