2015-10-16 18 views
0

我剛剛開始學習MIPS,這個例子讓我感到困惑。特別增加寄存器四次。示例中顯示的四次添加寄存器的原因是什麼?

這裏是我談論的例子:

enter image description here

什麼是做加$ T0,$ S1,S1 $

的目的,然後加$ t0,$ t0,$ t0這樣你就有四次什麼int k是?

+1

看起來他們可以完成'sll $ t0,$ s1,2'而不是('$ t0 = $ s1 << 2' =='$ t0 = $ s1 * 4') – Michael

回答

3

它用於從int數組索引(代碼)到字節數組索引(內存)的轉換。

k是代碼中int數組的索引。 int的大小是4個字節。要從內存中的字節數組加載值,您將轉到字節位置k * 4。添加恰好是實現這一點的最簡單操作。

+0

但是從我看着它,它看起來像是在操縱k最初的內容並使其成爲28(k是7,它是4 * k),並且由於該數組僅僅是12的大小,是不是表示它正在訪問的內存不足邊界? –

+0

該數組有12個_elements_,但每個元素都是一個_word_,它是4個字節。所以字節數組的大小是12 * 4 = 48. – Michael

+0

@邁克爾哦,好吧,現在我明白了。 –

相關問題