MIPS跳跃范围

时间:2017-08-01 19:12:55

标签: assembly mips

我目前正在学习考试,以下问题是参加其中一项考试:

将MIPS代码从当前指令1.073.742.000(Dec)跳转到221860(Dec)。

现在第一个问题是j标签指令比jr指令更有效吗?

其次我假设221860超出了从1073742000跳出的范围,因为它位于不同的256 MB块中?所以在这种情况下,除了使用jr之外我别无选择吗?

1 个答案:

答案 0 :(得分:1)

  

是j标签指令比jr指令更有效吗?

他们有不同的目的。

如果要在每次跳转时跳转到相同的地址,并且目标地址在同一个256MB区域内,则使用

J。如果目标地址在+/- 128kB之内,您也可以使用B(只要目标地址在给定限制范围内,B也可以跨越256MB区域边界)。由于使用JR还需要一条或多条指令将目标地址加载到寄存器中,因此必须将其用于所有无条件跳转。单击这将非常繁琐。

JR适用于您可能希望在不同场合跳转到不同的地址(例如从函数返回,可能从几个不同的地方调用),或跳转到不同的256MB区域。 / p>

  

所以在这种情况下,除了使用jr之外我别无选择吗?

右。