我试图转移到一个地址:MIPS如何转移到32位地址?
bne $t0, $0, 0x7813a21c
然而,这不正确,因为BNE只分配16位的即时
我怎么能转移到直接的32位地址?有没有办法从寄存器中的值中分支?
我试图转移到一个地址:MIPS如何转移到32位地址?
bne $t0, $0, 0x7813a21c
然而,这不正确,因为BNE只分配16位的即时
我怎么能转移到直接的32位地址?有没有办法从寄存器中的值中分支?
您必须使用JR
才能跳转到存储在寄存器中的地址。
要预制这种类型的操作,您需要一个跳转语句。您必须告诉代码将控制上下文跳转到您希望指定的确切行。这是示例语法:j offset
您的地址中的哪个位置是偏移量。
下面是一个链接,更好地评论你必须做的事情。查看关于跳跃的部分。这些是可用的跳跃类型。其中之一就是你需要:j offset
,jal offset
,jr $rs
,jalr $rs
这里是链接: http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Mips/jump.html
好运
'j offset'只能用于在当前的256MByte区域内跳转。你需要使用'jr'指令来跳转到任意的32位地址。 – markgz 2013-04-11 21:17:14
但这是无条件的。我想能够分支到一个32位地址。 – James 2013-04-11 21:07:01
使用您根据条件选择的值加载寄存器。 – 2013-04-12 05:16:13