Я пытаюсь суммировать значения «arrayA» со значениями другого «arrayB» и присваивать эту сумму в той же позиции, где индекс находится в «arrayA», но вывод это результат, который я не понимаю. Пожалуйста, может кто-нибудь мне помочь?Попытка суммировать значения двух массивов
Код:
.data
arrayA: .word 1,12,35,473,2,32,4
arrayB: .word 0,3,12,32,3,4,9
length: .word 7
count: .word 0
line: .asciiz "\n"
sum: .word 0
.text
MAIN:
la $s1, arrayA
la $s2, arrayB
lw $t3, length
li $t4, 0
lw $t5, count
FOR:
beq $t3, $t4, EXIT
lw $t0, ($s1)
lw $t1, ($s2)
add $t0, $t0, $t1
sw $t0, ($s1)
sw $t0, sum
li $v0, 1
la $a0, sum
syscall
li $v0, 4
la $a0, line
syscall
addi $t4, $t4, 1
addi $s1, $s1, 4
addi $s2, $s2, 4
j FOR
EXIT:
li $v0, 10
syscall
Выход:
268501060
268501060
268501060
268501060
268501060
268501060
268501060
Michael, я изменил имя регистра «arrayA» как «arrayB», но проблема не устранена. Я изменил код моего вопроса. – dsd
То, как вы печатаете сумму, неверно. См. Мой обновленный ответ. И, пожалуйста, исправьте форматирование своего вопроса. – Michael
Спасибо, Майкл, теперь код работает. Я изучаю MIPS, и это немного сложно, потому что у меня нет опыта. Еще раз спасибо, ты лучший. – dsd