У меня есть следующий код, который фактически должен увеличиваться от 1 до 6 при выполнении арифметики по переменной.Mips loop iteration
Пример в C будет
int res = 0;
for(i=1; i<6; i++) {
res += i*i+1;
}
Теперь мой MIPS код:
.data
res: .word 0
.text
li $t0, 1 #int j = 1
loop:
beq $t0, 6, end #for(int j = 1; j < 6; j++)
add $t0, $t0, 1
mul $t1, $t0, $t0 #res += j * j + 1
addi $t1, $t1, 1
sw $t1, res
b loop
end:
li $v0, 1 #checking the end result
la $a0, res
syscall
li $v0, 10 #graceful exit
syscall
По какой-то причине результат я получаю к концу составляет ~ 300 миллионов, и это явно не так. Кто-нибудь видит, в чем проблема? Im довольно новичок в сборке mips.
Thanks
Что такое j в коде C? ты имел в виду меня? – BlackBear
Да, я сделал это, я изменил его выше – user3183230