0

例如,如果给我 j 标签,标签在哪里,0x004000b0我将如何将其转换为机器码?

的操作码x02和目标地址为 26 位。我试图模拟并得到机器代码,0810002c但我无法手动计算。

4

1 回答 1

1

MIPS 指令参考,第 129 页:

这是一个 PC 区域分支(不是 PC 相关的);有效目标地址位于“当前”256 MB 对齐区域中。目标地址的低 28 位是 instr_index 字段左移 2 位。剩余的高位是延迟槽中指令地址的对应位(不是分支本身)。

因此,如果您要跳转到 0x4000B0,则将其向右移动两位,得到 0x10002C。这形成了跳转指令的低 26 位,高 6 位为 0b000010,整体操作码为 0x810002C。

于 2012-10-22T00:39:08.250 回答