我很困惑。当我在二进制文件中汇编压缩指令子集时,我得到了 32 位指令,但我认为我会得到 16 位指令,因为 RVC 子集是用 16 位编码的。RVC(压缩)子集中的指令在汇编后是否总是扩展为 32 位指令,或者它们应该是 16 位长?RISC-V的官方指令集手册中是这么写的:
RVC 是在每个 RVC 指令扩展为基本 RISC-V 指令之一的约束下设计的:RV32I、RV64I 或 RV128I
在 RISC-V 手册中写了这个指令:
C.LUI 将非零的 6 位立即数字段加载到目标寄存器的第 17-12 位,清除低 12 位,并将第 17 位符号扩展到目标的所有高位
由此我得出结论,立即数应该是 6 位,但是后来我正在编译一些东西,可以编译这一行,但是立即数的宽度超过 6 位,所以我很困惑
c.lui x14,0xffff8