2017-08-01 98 views
0

目前,我正在学习一个测试,下面的问题是在旧考试之一:MIPS跳跃范围

给从当前指令1.073.742.000(十二月)到221860跳跃的MIPS代码(十二月)。

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

第二我假设221860超出范围从1073742000跳转,因为它在不同的256 MB块?那么在这种情况下,我将别无选择,只能使用jr对吗?

回答

0

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

他们有不同的目的。

J用于在每次跳转时要跳转到同一地址,并且目标地址在同一个256MB区域内。如果目标地址在+/- 128kB范围内(B也可以跨越256MB区域边界,只要目标地址在给定限制范围内),也可以使用B。由于使用JR也需要一条或多条指令将目标地址加载到寄存器中,因此必须使用它来执行所有无条件跳转。

JR适用于您可能想在不同场合跳转到不同地址(例如从可能从多个不同位置调用的函数返回)或跳转到不同的256MB区域的情况。

所以在这种情况下,我会别无选择,只能使用jr吗?

没错。