1

我以为我已经理解了这一点,但我想我自己很困惑。

RISC-V RV32G 编码

我的印象是 [11:0] 是编码中立即位的顺序。例如,addi x1, x2, 12立即数为 000000001100;addi立即数将从指令编码中的第 20 位开始。

我很困惑这个逻辑如何应用于 U 型编码 [31:12] 中使用的相同符号。我知道 U 型立即数是 20 位,但我现在不确定如何解释这个符号。

4

1 回答 1

1

U 型是 for lui,其中立即数进入 Rd 的20 位,低 12 位被清除。或者对于auipc,相同的解码;位[31:12]来自指令,低 12 位是隐式 0。

所以位数是解码后的值中的位置,而不仅仅是立即数本身。

图中的位置显示了每个值位在机器编码中的来源;[hi:lo]范围数字显示该字段映射到哪个值位(在完整的 32 位或 64 位整数中)。

有关其他 RISC-V 立即数的更多一般信息,请参阅 ISA 文档中的设计评论,在几个 SO Q&A 中引用和扩展:

于 2021-05-02T09:02:21.307 回答