递归函数使用帮助(Mips程序集)

时间:2016-10-18 16:24:59

标签: assembly 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

1 个答案:

答案 0 :(得分:0)

它反转$a0(基地址),$a1(第一个元素位置-1)和$a2(最后一个元素位置-1)给出的数组。它是通过重复交换array[$a1]array[$a2]直到$a1 >= $a2来实现的。