2016-01-18 114 views
1

这是我第一次来这里,所以我想为任何语法/拼写错误在英语道歉。我有这个汇编数组元素的汇编程序。我计算了变量suma的总和,这个值被声明为.space 4。 我的问题是这样的:当n = 0时,总和值是否可能为0,而不是通过将其声明为.word 0sw $t0, suma,而是在程序结束之前的end:之后编写一些行? 任何答案高度赞赏!数组的总和元素

suma: .space 4 
a: .word 1, 0, 0, 3, 2, 1, 1 
n: .word 7 
i: .space 4 

.text 
main: 

li $t0, 0 
sw $t0, i 
lw $t1, n 

repeat: 


bge $t0, $t1, end 

add $t0, $t0, $t0 
add $t0, $t0, $t0 

lw $t0, a($t0) 

lw $t1, suma 
add $t1,$t1,$t0 
sw $t1, suma 

lw $t0, i 
addi $t0, $t0, 1 
sw $t0, i 

lw $t1, n 

j repeat 

end: 

li $v0, 10 
syscall 
+0

你可以在mysql中这样做:http://www.w3schools.com/sql/sql_func_sum.asp –

+0

我知道有很多其他方式/语言可以编写程序,但它需要在Assembly 。一些其他的想法? –

+0

目前还不清楚为什么将你已经提到的'suma'设置为0的方法是不够的。你真的想解决什么问题? – Michael

回答

0

您可以使用一个用0初始化的寄存器(例如$ t3)并在该寄存器中进行求和。退出循环之后,您将会将这个单词存储在suma中。对不起,最后的评论(我忘了登录)。

0

您可以使用一个用0初始化的寄存器,然后在该寄存器中进行求和。退出循环之后,您将会将这个单词存储在suma中。