2016-11-14 70 views
0

我正在製作MIPS中的遞歸迷宮求解器程序,並且正在嘗試實施一種我們的教授給我們的算法。然而,我堅持我將如何實施來自java的MIPS翻譯

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

當我創建在MIPS程序。基本上,我將如何將這種Java布爾表達式轉換爲MIPS。

+0

你能告訴我們到目前爲止你想出了什麼嗎? –

+0

好吧,這只是一個更大的程序的一部分,但實際上我所做的是加載參數,然後調用solveMaze。然後,solveMaze所做的第一件事就是檢查迷宮是否已解決,如果是,則將$ v0設置爲1,爲true,然後執行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