2015-10-16 15 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

@迈克尔哦,好吧,现在我明白了。 –

相关问题