Мне нужно создать массив int на основе пользовательского ввода, суммировать целые числа и вывести сумму и сам массив.
Мой код правильно вычисляет сумму, но я не могу вывести список. Он выводит только последнее число и нули, а затем застревает в бесконечном цикле в PRINTLIST.
Я думаю проблема в доступе к массиву. Может кто-нибудь помочь мне?
.data
intro:
.asciiz "Enter numbers\n"
sum:
.asciiz "\nSum= "
list:
.asciiz "\nList looks like: "
array:
.space 400
.text
main:
li $t1,0 #count
la $a1,array
li $v0,4
la $a0,intro
syscall
j INPUT
jr $ra
GETLIST:
li $v0, 5
syscall
move $t0,$v0
bltz $t0,SUM #leave if negative
add $t2,$t2,$t0
add $t1,$t1,1 #increment counter
sw $v0,0($a2) #store in array
add $a0,$a0,4
move $t5,$t2
j GETLIST
SUM:
li $v0,4
la $a0,sum
syscall
li $v0,1
move $a0,$t5 #sum to a0
syscall
li $v0,4
la $a0,list
syscall
add $t1,$t1,-1
PRINTLIST:
lw $t0,0($a1)
add $a1,$a1,4
add $t1,$t1,-1
li $v0,1
move $a0,$t0
syscall
bltz $t1,NEXT #leave when end of list
j PRINTLIST