2016-11-14 1 views
0

Ich arbeite an einem rekursiven Labyrinth-Löser-Programm in MIPS und ich versuche, einen Algorithmus zu implementieren, den unser Professor uns gab. Allerdings bin ich fest, wie ichMIPS Übersetzung aus Java

implementieren würde, wenn ich das Programm in MIPS erstellen. Grundsätzlich würde ich einen Java-booleschen Ausdruck wie diesen in MIPS umwandeln.

+0

Können Sie uns zeigen, was Sie bisher herausgefunden haben? –

+0

Nun, das ist nur ein Teil eines viel größeren Programms, aber im Wesentlichen, was ich tue, ist die Argumente laden und dann SolveMaze aufrufen. Dann überprüft lozeMaze zuerst, ob das Labyrinth gelöst ist, und wenn es so ist, setzt es $ v0 auf 1, für wahr, und dann kehrt jr $ ra aus dem rekursiven Aufruf heraus. Aber ich bin mir nicht sicher, ob ich darüber nachdenke. – bkrause404

Antwort

0

In der Assemblierung werden Boolesche Werte normalerweise durch Ganzzahlen dargestellt. Auch Funktionen geben Werte über Register zurück. Im Wesentlichen wird das Programm so ähnlich aussehen.

... 
main: 
    # store parameters in registers $a0 to $a3 
    jal solveMaze 
    mov $t0, $v0 
    li $v0, 1 
    syscall # prints 1 or 0 depending on what was returned 

solveMaze: # $a0 = r - 1, $a1 = c, $a2 = r, $a3 = c 
    ... # Do what needs to be done here 
    li $v0, 1 # $v0 contains 1 which means true, change to 0 for false 
    jr $ra  # return to the caller of the function