我試圖轉移到一個地址: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