我是MIPS新手,不明白這是怎麼回事:將整數值添加到數組?
假設字數組A存儲0,1,2,3,4,5,6,7,8,9,按此順序。假設A的起始地址是$ s0。在下面的指令之後,這個數組的值是什麼?
addi $t0, $s0, 32
lw $t1, 0($t0)
sw $t1, 4($t0)
(a) 0,1,2,3,4,5,6,7,8,9
(b) 0,1,2,3,4,5,6,7,9,9
(c) 0,1,2,3,4,5,6,7,8,8
(d) None of the above.
答案是「c」,但我不明白爲什麼。這是我的思維過程:代碼
第一行:
由於這是一個整數陣列,加入32到地址$ s0和給它$ T0將意味着給予A的[地址8 ]到$ t0。 A [8],因爲每個整數需要4個字節,因此增加0至$ S0將導致A的地址[0]和將4 $ S0將導致A [1]的地址,等等...
的代碼下聯:
0($ T0)被引用在$ T0的第一個元素(這我不知道那是什麼),並將其加載到寄存器$ T1。的代碼
第三行:
的$ T1的地址被存儲在存儲器中爲$ T0的第一個元素,這是由圖4($ T0)表示。
再次,上面是我的思維過程,這是最有可能錯