У меня проблемы с преобразованием следующего кода C в MIPS
#include <stdio.h>
int main (void)
{
int n = 0;
printf ("n = ");
scanf ("%d", &n);
int fac = 1;
for (int i = 1; i <= n; i++)
fac *= i;
printf ("n! = %d\n", fac);
return 0;
}
Мой код не распечатывает ожидаемый результат, но он может успешно напечатать "n:" и т. Д.
### Global data
.data
msg1:
.asciiz "n: "
msg2:
.asciiz "n! = "
eol:
.asciiz "\n"
### main() function
.data
.align 2
.word 4
.text
main:
la $a0, msg1
li $v0, 4 #printf("n: ")
syscall
li $v0, 5 #scanf("%d", &n)
syscall
li $t0, 1
li $t1, 1
mul $t1, $t1, $t0 #t1 = t1*t0
add $t0, $t0, 1 #t0 = t0+1
la $a0, msg2
li $v0, 4 #printf("n!= ")
syscall
li $v0, 1 #print %d
la $a0, eol
li $v0, 4 #printf("\n")
syscall
li $v0, 0
jr $ra #return from main
Мой код не выдает никаких выходных данных, поэтому, я думаю, что-то пошло не так в моем цикле