0

ADDI 指令取 -1 并将其扩展到 32 位,如下所示

addi t1, zero, -1
(gdb) info register t1
t1             0xffffffff       -1

但是当 imm12 的值为 0x800 时,会抛出非法操作数错误。为什么?我发现当 imm12 的 MSB(第 11 位)设置为 1(如 0x800、0xc00)时会出现问题。它不会抱怨 0x400。

addi t1, zero, 0x800
Error: illegal operands `addi t1,zero,0x800'
4

0 回答 0