0
私はMIPSで再帰的な迷路ソルバープログラムを作っています。私は教授が私たちに与えたアルゴリズムを実装しようとしています。しかし、私はどのように実装するつもりですMIPSからJavaへの翻訳
boolean p = solveMaze(r - 1, c, r, c);
私はMIPSでプログラムを作成しています。基本的に、どのように私はこのようなMIPSにJavaのブール式を回すだろう。
私はMIPSで再帰的な迷路ソルバープログラムを作っています。私は教授が私たちに与えたアルゴリズムを実装しようとしています。しかし、私はどのように実装するつもりですMIPSからJavaへの翻訳
boolean p = solveMaze(r - 1, c, r, c);
私はMIPSでプログラムを作成しています。基本的に、どのように私はこのようなMIPSにJavaのブール式を回すだろう。
アセンブリでは、ブール値は通常整数で表されます。また、関数はレジスタを使用して値を返します。基本的にプログラムはこのようになります
...
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
これまでに思い付いたことをお見せできますか? –
これはもっと大きなプログラムの一部ですが、基本的には引数をロードしてからsolveMazeを呼び出すだけです。それから、solveMazeが最初に行うことは、迷路が解かれているかどうかをチェックし、そうであれば$ v0を1に設定し、jr $ raが再帰呼び出しを抜け出すことです。しかし、私はそれについて正しい考え方をしているかどうかは分かりません。 – bkrause404