打印
[RISC-V MCU 应用开发]

RISC-V的寻址方式

[复制链接]
1913|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
RISC-V分支指令寻址,在之前的B类型指令就是其中之一。
这种格式可以表示从-4096到4094的分支地址,以2的倍数表示。B型格式包括一个7位操作码、一个3位功能码、两个5位的寄存器操作数( rs1和 rs2)和一个12位地址立即数。该地址使用特殊的编码方式,简化了数据通路设计,但使组装变得复杂。下面这条指令



其中条件分支的操作码是11001112,而bne 的funct3码是0012
RISC-V的无条件跳转–链接指令(jal),是分支寻址的另一种方法,也是唯一使用J型格式的指令。该指令由一个7位操作码、一个5位目标寄存器操作数(rd)和一个20位地址立即数组成。链接地址,即jal之后的指令的地址,被写入rd 中。

如果程序的地址必须适合这个20位字段,则意味着没有程序可能大于220,所以另一种方法是指定一个与分支地址偏移量相加的寄存器,这样就允许程序大到264,并且仍然能够使用条件分支指令,以便分支指令可以按如下来计算:

程序计数器=寄存器内容+分支地址偏移量
这样就允许程序大到2^64,并且仍然能够使用条件分支指令



1.立即数寻址,操作数是指令本身的常量。
2.寄存器寻址,操作数在寄存器中。
3.基址或偏移寻址,操作数于内存中,其地址是寄存器和指令中的常量之和。
4.PC相对寻址,分支地址是PC和指令中常量之和。
注:加载和存储对字节、半字、字或双字的访问有不同的版本。


使用特权

评论回复
沙发
两只袜子| | 2023-11-21 09:34 | 只看该作者
这些寻址方式可以根据需要进行组合和修改,以满足特定的需求。

使用特权

评论回复
板凳
中国龙芯CDX| | 2023-11-29 12:47 | 只看该作者
没太明白细节,学习中

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

659

主题

2769

帖子

0

粉丝