我被问到以下问题:
“给出条件分支的以下机器代码指令:
0x15090002
分支机构的PC添加了多少以形成分支目标?“
我是装配新手,我发现这有点令人困惑。它不应该是6吗? PC + 4 + 2(来自指令中的直接字段)?
答案 0 :(得分:4)
这
程序员的MIPS32TM架构 第二卷:MIPS32TM指令集
指令:
分支不等于
18位有符号偏移(16位偏移字段向左移位2位)被添加到以下指令的地址中 在分支延迟槽中的分支(不是分支本身),以形成PC相对有效的目标地址。
换句话说,分支偏移计入(32位/ 4 - 字节 - 因此移位2)指令,立即从指令开始以下分支指令。因此,如果两个测试寄存器不相等,则指令将跳过下两条指令。