В настоящее время я пишу программу mips, которая делает факториал. Я написал факториальный пример в java и также имею программу MIPS под кодом Java. У меня большинство выписано MIPS, но я смущен, почему он неправильно обрабатывает. Любые советы будут очень признательны.Программирование MIPS basic for-loop
Java code for the iteratve factorial algorithm:
import java.util.Scanner;
public class FactorMachine {
public static void main(String[] args) {
int input;
Scanner in = new Scanner(System.in);
System.out.println("Enter an integer to be factored: ");
input = in.nextInt();
{
int x, factorial = 1;
for (x = input; x > 1; x--)
factorial *= x;
System.out.println("Factorial #" + input + " is " + factorial);
}
}
}
MIPS КОД:
.data
p1: .asciiz "Enter an integer to be factored: "
ans1: .asciiz "Factorial # "
ans2: .asciiz " is "
ans3: .asciiz "\n\n"
.text
.globl main
main: li $v0, 4
la $a0, p1
syscall
li $v0, 5
syscall
move $t0, $v0 #this is input
li $t1, 1 #initilize factorial
move $t2, $t0 #initilize x
loop:
blt $t2, 1, done
sub $t2, $t2, 1
mul $t3, $t1, $t0
j loop
done:
li $v0, 4
la $a0, ans1
syscall
li $v0, 1
move $a0, $t3
syscall
jr $ra
Определенно ставит вперед и назад языки в перспективе. –