我正在为即将到来的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 :(得分:0)
它反转$a0
(基地址),$a1
(第一个元素位置-1)和$a2
(最后一个元素位置-1)给出的数组。它是通过重复交换array[$a1]
和array[$a2]
直到$a1 >= $a2
来实现的。