2016-10-18 94 views
0

我正在爲即將到來的Mips程序集考試進行學習,並試圖獲取該函數的用法。我一直在跟着它,但除了機械計算我似乎無法找到這些計算的真正用處。任何人幫助?遞歸函數使用幫助(Mips程序集)

func: 
bge $a1, $a2, Exit 
sll $t1, $a1, 2 
add $t1, $a0, $t1 
sll $t2, $a2, 2 
add $t2, $a0, $t2 
lw $t3, 0($t1) 
lw $t4, 0($t2) 
sw $t3, 0($t2) 
sw $t4, 0($t1) 
addi $a1, $a1, 1 
addi $a2, $a2, -1 
j func 
Exit:  
jr $ra 
+0

運行它的一些示例數據,你會看到;) – Jester

回答

0

它反轉由$a0(基地址)中給出的陣列,$a1(第一元件位置 - 1),和$a2(最後一個元素的位置 - 1)。它通過重複交換array[$a1]array[$a2]直到$a1 >= $a2