2013-04-01 34 views
0

我正在做一個任務,我試圖在C++和MIPS之間進行轉換,並且我有一個問題,要求我將B [8] = A [i-3] i,A和B分別存儲在註冊表$ s0,$ s4和$ s5中。我堅持的部分是如何將i-3存儲到A []中。是否有可能做這樣的事情?:MIPS基本lw查詢

lw $t0, 32($s5) 
addi $t1, $s0, -3 
lw $t2, $t1($s4) 
sw $t0, 0($t2) 

我還是有點新MIPS和我主要是想弄清楚如果你能以這種方式使用LW。任何幫助,將不勝感激。

回答

2

您不能以寄存器作爲索引調用lw。假設在寄存器中的值是正確的,則需要在兩個步驟中執行它:

add $t1, $t1, $s4 
lw $t2, 0($t1) 

不要忘記,訪問字陣列,其中每個元素是4個字節長時,需要乘以索引通過4.