Итак, я пытаюсь рекурсивно обратить массив, но по какой-то причине он печатает только исходный массив.Мне нужно, чтобы напечатать обратный массив с обратным.Мой код ниже.Любая помощь будет принята с благодарностью.
.data
list: .word 1 2 3 4 5 6
size: .space 6
head: .asciiz "The Original Array is:\n"
back: .asciiz "The Reverse Array is:\n"
.text
.globl main
main:
li $v0,4 # print syscall
la $a0,list
syscall
li $v0,8 # read array
la $a0,list
li $a1,1000
syscall
la $a0,list
jal arrlen
move $a1,$v0
la $a0,list
jal reverse
li $v0,4
la $a0,list
syscall
li $v0,10
syscall
reverse:
move $t0,$ra
addu $a1,$a0,$a1
addiu $a1,$a1,-1
j reverse_next
reverse_loop:
jal swap
addiu $a0,$a0,1
addiu $a1,$a1,-1
reverse_next:
ble $a0,$a1,reverse_loop
jr $t0
swap:
lb $v0,0($a0)
lb $v1,0($a1)
sb $v1,0($a0)
sb $v0,0($a1)
jr $ra
arrlen:
move $v0,$a0
arraylen_loop:
lb $t1,0($a0)
addi $a0,$a0,1
bnez $t1,arraylen_loop
subu $v0,$a0,$v0
subi $v0,$v0,1
jr $ra