addiu 指令编码(MIPS,GCC)
addiu instruction encoding (MIPS,GCC)
这里是 addiu 指令操作码(16 位指令,GCC 选项 -mmicromips):
full instruction: addiu sp,sp,-280
opcode, hexa: 4F75
opcode, binary: 1001(instruction) 11101(sp is ) 110101
我的目的是检测所有此类指令(addiu sp,sp,
)
然后解码立即数,在上述情况下 (-280)(跟随 sp)。
我不明白的是(-280)的编码。
链接到:
microMips 有一个专门的 ADDIUSP
汇编器选择使用的指令。前 6 位是操作码 010011
,接下来的 9 位是编码立即数 110111010 = 0x1BA
,LSB 保留在 1
.
立即数的编码使用 4 倍缩放和符号扩展。鉴于 0x1BA = -70
(使用 9 位),该值为 -70 * 4 = -280
.
这里是 addiu 指令操作码(16 位指令,GCC 选项 -mmicromips):
full instruction: addiu sp,sp,-280
opcode, hexa: 4F75
opcode, binary: 1001(instruction) 11101(sp is ) 110101
我的目的是检测所有此类指令(addiu sp,sp,
)
然后解码立即数,在上述情况下 (-280)(跟随 sp)。
我不明白的是(-280)的编码。
链接到:
microMips 有一个专门的 ADDIUSP
汇编器选择使用的指令。前 6 位是操作码 010011
,接下来的 9 位是编码立即数 110111010 = 0x1BA
,LSB 保留在 1
.
立即数的编码使用 4 倍缩放和符号扩展。鉴于 0x1BA = -70
(使用 9 位),该值为 -70 * 4 = -280
.