【RISC-V】RISC-V寄存器

本文详细介绍了RISC-V架构的系统寄存器,包括U、S、M三种模式下的寄存器使用。重点讲解了misa寄存器,用于表示处理器支持的扩展和寄存器长度,以及mstatus寄存器,关键的控制状态寄存器。同时,文章还提到了RISC-V中用于性能监控的寄存器如cycle、time、instret等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、通用寄存器

32位RISC-V体系结构提供32个32位的整型通用寄存器
寄存器 别名 全称 说明
X0 zero 零寄存器 可做源寄存器(rs)或目标寄存器(rd)
X1 ra 链接寄存器 保存函数返回地址
X2 sp 栈指针寄存器 指向栈的地址
X3 gp 全局寄存器 用于链接器松弛优化
X4 tp 线程寄存器 常用于在OS中保存指向进程控制块(task_struct)数据结构的指针
X5 ~ X7
X28 ~ X31
t0 ~ t6 临时寄存器
X8 s0/fp 帧指针寄存器 用于函数调用,被调用函数需保存数据
X9 s1 用于函数调用 ,被调用函数需要保存的数据
X10 ~ X17 a0 ~ a7 用于函数调用,传递参数和返回值
X18 ~ X27 s2 ~ s11 用于函数调用 ,被调用函数需要保存的数据

二、系统寄存器

系统控制状态寄存器(CSR)。

CSR指令编码结构
CSR地址空间映射:

地址范围 bit[11:10] bit[9:8] bit[7:4] 访问模式 访问权限
0x000 ~ 0x0FF 00 00 xxxx U RW
0x400 ~ 0x4FF 01 00 xxxx U RW
0x800 ~ 0x8FF 10 00 xxxx U RW(用户自定义系统寄存器)
0xC00 ~ 0xC7F 11 00 0xxx U RO
0xC80 ~ 0xCBF 11 00 10xx U RO
0xCC0 ~ 0xCFF 11 00 11xx U RO
0x100 ~ 0x1FF 00 01 xxxx S RW
0x500 ~ 0x57F 01 01 0xxx S RW
0x580 ~ 0x5BF 01 01 10xx S RW
0x5C0 ~ 0x5FF 01 01 11xx S RW(用户自定义系统寄存器)
0x900 ~ 0x97F 10 01 0xxx S RW
0x980 ~ 0x9BF 10 01 10xx S RW
0x9C0 ~ 0x9FF 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值