RISC-V 架构寄存器规范

a0 - a7( x10 - x17 )

调用者保存,用来传递输入参数。其中的 a0 和 a1 还用来保存返回值

t0 - 6( x5 - x7, x28 - x31 )

调用者保存,作为临时寄存器使用,在被调函数中可以随意使用无需保存

s0 - s11( x8 - x9, x18 - x27 )

被调用者保存,作为临时寄存器使用,被调函数保存后才能在被调函数中使用

zero( x0 )

它恒为零,函数调用不会对它产生影响

ra( x1 )

调用者保存,被调用者函数可能也会调用函数,在调用之前就需要修改 ra 使得这次调用能正确返回。因此,每个函数都需要在开头保存 ra 到自己的栈帧中,并在结尾使用 ret 返回之前将其恢复。栈帧是当前执行函数用于存储局部变量和函数返回信息的内存结构

sp( x2 )

调用者保存,栈指针 (Stack Pointer) 寄存器,它指向下一个将要被存储的栈顶位置

fp( s0 )

被调用者保存,它既可作为s0临时寄存器,也可作为栈帧指针(Frame Pointer)寄存器,表示当前栈帧的起始位置。fp 指向的栈帧起始位置 和 sp 指向的栈帧的当前栈顶位置形成了所对应函数栈帧的空间范围

gp( x3 ) , tp( x4 )

在一个程序运行期间都不会变化,因此不必放在函数调用上下文中

相关推荐
Safeploy安策数据5 分钟前
从算法到架构:构建企业级数据库加密与密钥防护体系的实战手册
数据库·安全·架构
爱勇宝26 分钟前
前端工程师的下一站:不是失业,而是 AI Engineer
前端·javascript·架构
wb043072011 小时前
外卖大战——从阿明的“3 秒生死线“,看系统性能优化的全链路方法论
开发语言·性能优化·架构·php
2601_957882241 小时前
跨异构网络媒体中台架构:多渠道接口幂等性、高性能流式管线与数据网关设计
架构·aigc
江华森2 小时前
Nacos 微服务注册与配置中心深度学习指南
微服务·云原生·架构
货拉拉技术2 小时前
货拉拉标注平台-拉拉标注
后端·架构
龙亘川2 小时前
拆解低空智联:四位一体架构、落地场景与行业瓶颈|《低空智联技术与应用白皮书 2026》深度复盘
架构·低空智联技术与应用白皮书
用户337922545682 小时前
从零手搓大语言模型:模型结构篇
架构
杊页2 小时前
系列二:MVVM 深度实战与项目重构 | 第6篇 DataBinding & ViewBinding 实战落地:告别 findViewById 的“刀耕火种”
架构·mvvm
风一直吹2 小时前
Web 端 PvP 实时对战从零实现:匹配、同步、伤害全链路拆解
架构