2016-10-18 2 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.

Смежные вопросы