salve sto facendo il seguente programma: inserire in un array n numeri e fare la somma di tutti i numeri pari e stampare il risultato, e fare la somma di tutti i numeri dispari e stampare il risultato.
Questo è il mio codice , ma non mi da i risultati giusti, dove è che sbaglio?


# Title: Somma numeri pari e dispari
# Description: Digitare 10 interi e come risultato voglio la somma di tutti i numeri pari e la somma
# di tutti i numeri dispari
# Input: Inserire 10 numeri da tastiera
# Output: Risultato della somma dei numeri pari e dei numeri dispari
################# Data segment #####################
.data
stringa1: .asciiz "\nLa somma dei numeri pari è: "
stringa2: .asciiz "\nLa somma dei numeri dispari è: "
prompt: .asciiz "Digita l'intero"

################# Code segment #####################
.text
.globl main
main:
li $s0,0 # inizializzo $s0=0 per il risultato dei pari
li $s3,0 # inizializzo $s3=0 per il risultato dei dispari

li $t2,2 # $t2=2 lo utilizziamo per la divisione per controllare se l'intero è pari

li $t0,0 # conta le iterazioni che devono essere 10
loop:

la $a0,prompt
li $v0,4
syscall

li $v0,5
syscall

move $t1,$v0 # $t1 contiene il numero digitato

div $t3,$t1,$t2 # numero digitato/2

mfhi $t3 # metto il resto della divisione in $t3

beqz $t3,pari

beq $t3,1,dispari

pari:
move $s1,$t1 # sposto in $s1 il valore dell'intero digitato

add $s0,$s0,$s1 # in $s0 ho la somma di tutti i numeri pari

add $t0,$t0,1 # incremento l'iterazione

bne $t0,10,loop # se $t0 e' diverso da 10 ripete l'iterazione

j exit

dispari:
move $s2,$t1 # sposto il numero dispari in $s2

add $s3,$s3,$s2 # in $s3 ho la somma totale dei dispari

add $t0,$t0,1 # incremento l'iterazione

bne $t0,10,loop # se $t0 e' diverso da 10 ripete l'iterazione

la $a0,stringa2
li $v0,4
syscall

move $a0,$s3

li $v0,1
syscall


la $a0,stringa1
li $v0,4
syscall

move $a0,$s0

li $v0,1
syscall



li $v0,10
syscall