【发布时间】:2021-05-02 08:48:26
【问题描述】:
我以为我已经理解了这一点,但我想我自己很困惑。
我的印象是 [11:0] 是编码中立即位的顺序。例如,addi x1, x2, 12 的立即数为 000000001100;立即数将从 addi 指令编码中的第 20 位开始。
我很困惑这个逻辑如何应用于 U 型编码 [31:12] 中使用的相同符号。我知道 U 型立即数是 20 位,但我现在不确定如何解释这个符号。
【问题讨论】:
-
好吧,这下沉了。那么在
lui指令中可用作立即数的最大十进制值将是 (2^31/2)-1? -
不,
(2^32 - 1) & -4096= 4294963200 = 0xfffff000。 (作为地址,虚拟地址空间的低 4GiB 中最高 4k 页的地址。)高 20 中的任何模式,低 12 中的全零。
标签: assembly encoding riscv machine-code immediate-operand