2013-04-10 49 views
2

我試圖轉移到一個地址:MIPS如何轉移到32位地址?

bne $t0, $0, 0x7813a21c 

然而,這不正確,因爲BNE只分配16位的即時

我怎麼能轉移到直接的32位地址?有沒有辦法從寄存器中的值中分支?

回答

1

您必須使用JR才能跳轉到存儲在寄存器中的地址。

+0

但這是無條件的。我想能夠分支到一個32位地址。 – James 2013-04-11 21:07:01

+0

使用您根據條件選擇的值加載寄存器。 – 2013-04-12 05:16:13

0

要預製這種類型的操作,您需要一個跳轉語句。您必須告訴代碼將控制上下文跳轉到您希望指定的確切行。這是示例語法:j offset您的地址中的哪個位置是偏移量。

下面是一個鏈接,更好地評論你必須做的事情。查看關於跳躍的部分。這些是可用的跳躍類型。其中之一就是你需要:j offsetjal offsetjr $rsjalr $rs

這裏是鏈接: http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Mips/jump.html

好運

+0

'j offset'只能用於在當前的256MByte區域內跳轉。你需要使用'jr'指令來跳轉到任意的32位地址。 – markgz 2013-04-11 21:17:14