形成分支目标

时间:2015-02-06 22:03:18

标签: assembly mips

我被问到以下问题:

“给出条件分支的以下机器代码指令:

0x15090002

分支机构的PC添加了多少以形成分支目标?“

我是装配新手,我发现这有点令人困惑。它不应该是6吗? PC + 4 + 2(来自指令中的直接字段)?

1 个答案:

答案 0 :(得分:4)

  

程序员的MIPS32TM架构   第二卷:MIPS32TM指令集

指令:

  

分支不等于

     

18位有符号偏移(16位偏移字段向左移位2位)被添加到以下指令的地址中   在分支延迟槽中的分支(不是分支本身),以形成PC相对有效的目标地址。

换句话说,分支偏移计入(32位/ 4 - 字节 - 因此移位2)指令,立即从指令开始以下分支指令。因此,如果两个测试寄存器不相等,则指令将跳过下两条指令。