2014-02-17 70 views
0

我正在嘗試使用MIPS來做三件事情,但此刻不知道該從哪裏開始。MIPS內存訪問

我需要寫寫0101 0101 0101 0101值到內存位置的地址0x10000000.則16位的二進制值轉換爲十進制或十六進制,以它作爲我的代碼部分。首先將該值寫入寄存器,然後將該地址的寄存器值存儲在內存中。

然後,我需要將值1010 1010 1010 1010 1010 1010 1010 1010寫入下一個內存位置,地址爲0x10000004。再次轉換32位二進制值。然後首先使用lui加載高16位,然後使用ori加低16位。

最後,我需要添加存儲在0x100000000x10000004的值,並將32位字結果存儲在內存中的下一個地址處。

任何幫助將非常有幫助!並解釋代碼等

謝謝你們

回答

1

試試這個:

addi $t0 $zero 0x5555 #store 0101 0101 0101 0101 in $t0 
lui $t1 0x1000  #store 0x10000000 in $t1 
sw $t0 0($t1) 

lui $t0 0xAAAA #store 1010 1010 1010 1010 0000 0000 0000 0000 in $t0 
ori $t0 0xAAAA #store 1010 1010 1010 1010 1010 1010 1010 1010 in $t0 
sw $t0 4($t1) 

#load the values, add and store back 
lw $t2 0($t1) 
lw $t3 4($t1) 
add $t4 $t2 $t3 
sw $t4 8($t1) 

我想,也許是什麼迷惑你,是你在談論不必來回轉換的各個基地之間。正如你在上面看到的,這不是必需的。

+0

完美:)謝謝 – user3320684