如何从mips转到机器代码?

时间:2012-10-21 22:12:33

标签: assembly mips

例如,如果给出j标签,标签位于0x004000b0,我将如何将其转换为机器代码?

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

1 个答案:

答案 0 :(得分:1)

来自MIPS instruction reference,第129页:

  

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

因此,如果你跳到0x4000B0,你将它向右移两位,给你0x10002C。这构成了跳转指令的低26位,高6位为0b000010,整体操作码为0x810002C。