Я пытаюсь реализовать функцию findSum с использованием сборки MIPS. Это дает неправильную сумму со второго элемента, и я не знаю почему. Ниже приведен код:
.data
myArray: .word 36 56 8 99 54 3 2 9 54 13
myArraySize: .word 10
sumMsg: .asciiz "\nThe sum is "
.text
.globl main_
main_:
jal findSum #Call the procedure to find the sum of myArray
la $a0, sumMsg #Output the message
li $v0, 4
syscall
addi $a0, $s0, 0 #Output the result
li $v0, 1
syscall
findSum:
lw $t3, myArraySize # t3 is array size
addi $a0, $0, 0 # a0 is sum, set it to 0
addi $t0, $0, 0 # t0 is count, set it to 0
lw $t1, myArray # t1 is array element
foreach: add $a0, $a0, $t1 # update sum to sum+thisElement
addi $t1, $t1, 4 # move to next element
addi $t0, $t0, 1 # count += 1
slt $t2, $t0, $t3
bne $t2, $zero, foreach # if this one is not last one, do for next one
addi $s0, $a0, 0 # store sum to s0
jr $ra