2016-11-14 6 views
0

私はMIPSで再帰的な迷路ソルバープログラムを作っています。私は教授が私たちに与えたアルゴリズムを実装しようとしています。しかし、私はどのように実装するつもりですMIPSからJavaへの翻訳

boolean p = solveMaze(r - 1, c, r, c); 

私はMIPSでプログラムを作成しています。基本的に、どのように私はこのようなMIPSにJavaのブール式を回すだろう。

+0

これまでに思い付いたことをお見せできますか? –

+0

これはもっと大きなプログラムの一部ですが、基本的には引数をロードしてからsolveMazeを呼び出すだけです。それから、solveMazeが最初に行うことは、迷路が解かれているかどうかをチェックし、そうであれば$ v0を1に設定し、jr $ raが再帰呼び出しを抜け出すことです。しかし、私はそれについて正しい考え方をしているかどうかは分かりません。 – bkrause404

答えて

0

アセンブリでは、ブール値は通常整数で表されます。また、関数はレジスタを使用して値を返します。基本的にプログラムはこのようになります

... 
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