0

Mips指令格式:

00010110001100101111111111111110

在这种情况下,指令位于地址 0x80000014

它和带有操作数的 BNE 指令:Rs = $s2 和 Rt = $s1,偏移量为 -2 我知道可以通过以下公式解决这个问题:Pc+4-offset ,在这种情况下会产生 0x80000010。然而,是不是因为 PC 总是被假定为前面的指令(4 字节),因此Pc+4并且偏移量是-2x8,所以 Pc+4-8 给了我 0x80000010。某个善良的灵魂可以一步一步地解释我应该在这里做什么吗?

4

1 回答 1

0

MIPS 分支偏移量是分支之后的指令的有符号位移(以指令数表示)

换句话说,在您使用 MIPS32 的情况下,以下指令位于 0x800000018。偏移量 -2 乘以指令大小 4,得到 -0x8。

换句话说,跳转到的指令是0x80000018-0x8 = 0x80000010

于 2013-06-22T14:30:46.393 回答