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 )

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

相关推荐
大江东去浪淘尽千古风流人物38 分钟前
【Kimera-Semantics】实时三维语义重建深度解析:Fast/Merged 双路积分、对数概率体素 Bayesian 融合与 ROS 全链路实现
大数据·架构·spark
@不误正业38 分钟前
多Agent协作框架深度实战-从ReAct到Plan-and-Execute全架构演进
前端·react.js·架构·agent
小谢小哥41 分钟前
59-消息推送系统详解
java·后端·架构
70asunflower1 小时前
数据流架构芯片深度科普:打破指令围墙,让数据像水一样流动
架构·芯片
weixin_404551241 小时前
转向AI原生架构的核心挑战
架构·ai-native
闵孚龙1 小时前
Claude Code系统提示词架构全解析:Prompt Caching、多级缓存、Agent指令设计与System Prompt工程化
人工智能·缓存·架构·prompt
Paraverse_徐志斌1 小时前
【AI Agent】常用架构模式:ReAct、Plan-and-Execute、Reflection
人工智能·ai·架构·llm·agent·react
亚空间仓鼠2 小时前
Docker容器化高可用架构部署方案(八)
android·docker·架构
倔强的石头1062 小时前
异构操作系统架构下的数据库表空间高级管理:路径兼容与自动化运维实战
运维·数据库·架构
阿洛学长2 小时前
使用 Hexo+GitHub 搭建个人免费博客教程(小白)
运维·数据库·架构