PDA

Visualizza la versione completa : [Assembly mips]


rossonero922
26-09-2013, 23:49
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...



.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

Loading