stasera mi sono avventurato nell assembly...praticamente devo scrivere un programma che sommi n numeri,ogni volta immesso un numero il programma chiede se l utente intende fermarsi:se si il programma restituisce la somma dei numeri immessi fino a questo momento se no si continua a immettere numeri fino a che non si decide di fermarsi.Naturalmente come ho gia scritto nel momento in cui ti fermi devi ricevere la somma....bene...il mio problema è che mi somma solo i primi due numeri gli altri no....vi posto il codice....ripeto ho cominciato stasera a scrivere qualcosa quindi potrebbero esserci scritte delle cazzate...
codice:
 

.data 
mex:.asciiz "immetti il numer "
mex1:.asciiz "vuoi aggiungerne altri?premi 1 se si o 2 se no "
mex2:.asciiz "immettilo "
.text 
.globl main
main:

la $a0,mex
li $v0,4         #messaggio1
syscall

add $v0,$zero,5
syscall               #leggo 1 numero

add $t0,$zero,$v0        #metto il numero letto in t0
addi $t1,$zero,0          #inizializzo a zero t1   


if1:
la $a0,mex1
li $v0,4                 #legge messaggio 2
syscall

add $v0,$zero,5
syscall                  #legge si o no(1 o 2)

add $t3,$zero,$v0          #mette in t3 il risultato della lettura 
bne $t3,1,else              #confronta con 1,se è diverso da 1 va in else


la $a0,mex2
li $v0,4                   #legge terzo messaggio
syscall
 
add $v0,$zero,5            #legge numero
syscall   
add $t1,$zero,$v0         #mette numero letto in t1


add $s0,$s0,$t1
j if1
else:
add $s0,$t0,$t1          #somma
fine:
add $a0,$zero,$s0
li $v0,1                  #stampa risultato
syscall