salve ragazzi,mi servirebbe aiuto con questo esercizio
Allocare due vettori v1 e v2 di interi a 16 bit di 10 elementi ciascuno e scrivere una funzione utilizzando il passaggio dei parametri sullo stack che crea un nuovo vettore v3 nello stack i cui elementi sono calcolati secondo la seguente formula v3[i]=v1[i]+v2[10-i]. Scrivere una funzione che stampa a video il contenuto di v3 e si scriva il main per l’invocazione delle due funzioni.
Quello che ho fatto io è questo:
.data
v1:.half 1,3,2,5,3,7,9,0,8,10
v2:.half 5,8,0,11,4,3,7,9,1,6
dim:.byte 10
stampa:.asciiz"Il vettore v3 è uguale:"
spazio:.asciiz " "
.text
main:la $a1,v1
la $a2,v2
lb $a3,dim
jal somma
jal stampa1
li $v0,10
syscall

somma:addi $sp,$sp,-40
addi $t0,$zero,0 #i
subi $t8,$a3,1
ciclo:sub $t6,$t8,$t0
sll $t3,$t0,1
add $t1,$t3,$a1 #indirizzo di v1
lh $t4,0($t1)
sll $t7,$t6,1
add $t2,$t7,$a2 #indirizzo di v2
lh $t5,0($t2)
add $s0,$t5,$t4
sh $v0,0($sp)
addi $sp,$sp,4
addi $t0,$t0,1
bne $t0,$a3,ciclo
jr $ra

stampa1:
la $a0,stampa
li $v0,4
syscall
addi $t1,$zero,0
addi $sp,$sp,-40
ciclo1:lw $a0,0($sp)
li $v0,1
syscall
addi $sp,$sp,4
addi $t1,$t1,1
la $a0,spazio
li $v0,4
syscall
bne $t1,$a3,ciclo1
jr $ra

Penso di aver sbagliato entrambe le funzioni perchè stampa mi da tutti zero, e somma (anche se funziona) mi chiede di fare il passaggio di parametri sullo stack e nn sono sicuro sicuro che si faccia cosi
Grazie mille a chiunque mi darà chiarimenti sui miei errori