RISC-V ISA极简介绍

本文简要介绍了RISC-V指令集架构,指出与ARM的区别,如缺少PC寄存器,但拥有更多通用寄存器。RISC-V的RV32E指令集适用于嵌入式开发。在跳转指令方面,长跳转没有绝对地址选项,需要理解lui和auipc的用法。此外,伪指令如j和call分别对应短距离和长距离调用。文章还提到在实际操作中,CSRs读写指令应用较少。
摘要由CSDN通过智能技术生成

1,CPU register如下图,和 ARM的 一个明显区别是没有PC寄存器给你直接操作,对于写ASM 没有感觉到有影响。另外就是通用寄存器更多了,所有的save和restore操作的指令更多了,也就是上下文操作时间消耗的时间更多,但是RISC-V有定义RV32E指令集,只使用一半的寄存器(16个),对于嵌入式开发来说应该是利好的 ,可惜我还没有编译成功。

2,下图RISC-V伪指令和base指令里长跳转指令竟然没有给出适用于绝对地址的,这种用法要避开。我之前按ARM的用法去想跳转到一个远的固定地址,结果被卡了好久。

lui和auipc都用于构建常数,lui直接利用数值,而auipc却利用当前pc值。

然后你从图里会发现编译器用的全是auipc,所以你想自己写asm,要先把lui和auipc搞明白。其他实际上和ARM区别就不大了。

伪指令j 短距离,call 长距离,j 跳转带r就是有link操作。

关于第二页的CSRs读写操作指令,我基本没用到,因为picoRV32都没实现这些。只用过rdinstret和rdcycle 32bit的,这个很简单只跟一个rd就可以。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值