我目前正在学习考试,以下问题是参加其中一项考试:
将MIPS代码从当前指令1.073.742.000(Dec)跳转到221860(Dec)。
现在第一个问题是j标签指令比jr指令更有效吗?
其次我假设221860超出了从1073742000跳出的范围,因为它位于不同的256 MB块中?所以在这种情况下,除了使用jr之外我别无选择吗?
答案 0 :(得分:1)
是j标签指令比jr指令更有效吗?
他们有不同的目的。
如果要在每次跳转时跳转到相同的地址,并且目标地址在同一个256MB区域内,则使用 J
。如果目标地址在+/- 128kB之内,您也可以使用B
(只要目标地址在给定限制范围内,B
也可以跨越256MB区域边界)。由于使用JR
还需要一条或多条指令将目标地址加载到寄存器中,因此必须将其用于所有无条件跳转。单击这将非常繁琐。
JR
适用于您可能希望在不同场合跳转到不同的地址(例如从函数返回,可能从几个不同的地方调用),或跳转到不同的256MB区域。 / p>
所以在这种情况下,除了使用jr之外我别无选择吗?
右。