所以我遇到了问题。我认为a是一个单词数组,a的基地址保存在$ a0中。所以对于int [10],使用mips找到这个数组的总和。我真的不知道从哪里开始有人可以帮助我开始,我想我应该能够完成它。非常感谢!
答案 0 :(得分:1)
由于您获得了数组开头的地址,因此您知道这也是您的第一个元素。由于这是一个int数组,我假设它意味着它将使用mips32上一个字大小的存储空间,即4个字节。因此,[1]位于[0] + 4字节的地址。 A [2]位于[0] + 8字节或[1] + 4字节等地址...
由此可见,您只需循环10次,每次加载一个单词并添加值。
基本流程是:
注意:给出的基址必须是字对齐的。
优化注释:您可以通过在步骤1之前将某些寄存器设置为$ a0 + 40来优化执行的指令数。这意味着您可以删除步骤5,并且步骤6将检查$ a0是否小于该值在步骤1之前注册您设置的。(最后一次优化是将步骤4移动到步骤6的延迟槽。如果您使用的是模拟器,则可能不支持此功能)