Я новичок в MIPS, поэтому, если вы видите что-то, что не имеет смысла, то вот почему.
Я пытаюсь суммировать только четные значения массива в моем коде, изатем вставьте результат в 10 долларов.Я включил то, что я написал до сих пор.Когда программа выполняется, она зависает и выдает мне несколько ошибок: «Возникла исключительная ситуация на ПК = 0x0040001c» и «Неверный адрес в считывании данных / стека 0x10040000» и «Попытка выполнить не-инструкцию при 0x80000180.»
.text
.globl main
main:
lui $16,0x1000
lw $17,0($16)
addiu $16, $16, 4
addiu $18, $0, 2
addiu $19, $0, 32
loop:
beq $16, $19, exit
sll $0, $0, 0
lw $17,0($16)
sll $0, $0, 0
div $17, $18
mfhi $13
beq $13, $0, even
sll $0, $0, 0
addiu $16, $16, 4
j loop
sll $0, $0, 0
even:
add $10, $10, $17
addiu $16, $16, 4
j loop
sll $0, $0, 0
exit:
sll $0, $0, 0
.data
size: .word 8
array: .word 23, -12, 45, -32, 52, -72, 8, 13
Я получаю -56 за 10 долларов, но результат должен быть 25 за 10 долларов.