RISCV中的寄存器操作
2023-12-14 16:53:38
????????控制状态寄存器指令 (csrrc、csrrs、csrrw、csrrci、csrrsi、csrrwi), 使我们可以轻松地访问一些程序性能计数器。对于这些 64 位计数器, 我们一次可以读取 32 位。这些计数器包括了系统时间, 时钟周期以及执行的指令数目。
- CSRRW
- 先读取寄存器的值:t=CSRs[csr];
- 将rs1这个RS的值,写入CSRs[csr];
- 将读回来的t, 写入到rd当中;
- CSRRWI
- 将CSRs[csr]的值,读出来,写入rd对应的逻辑寄存器中;
- 然后将5 bits立即数,写入CSRs[csr];
- CSRRS
- 将CSRs[csr]这个CRS的值先读出来;
- 将读出来的值,t, 与逻辑寄存器rs1的值进行|;
- 结果写入逻辑寄存器rd;
- CSRRC
- 将CSRs[csr]这个CRS的值先读出来;
- 将读出来的值,t, 与逻辑寄存器rs1按位取反后的值,进行&;(也就是clear操作)
- 结果写入逻辑寄存器rd;
- CSRRSI
- 将CSRs[csr]这个CRS的值先读出来;
- 将读出来的值,t, 与立即数进行|;
- 结果写入逻辑寄存器rd;
- CSRRCI
?
- 将CSRs[csr]这个CRS的值先读出来;
- 将读出来的值,t, 与立即数取反后的值,进行|;(即clear操作);
- 结果写入逻辑寄存器rd;
文章来源:https://blog.csdn.net/zhangshangjie1/article/details/134996405
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!