# loops.s .text .globl main main: lw $t0,x # esempio di ripetizione while lw $t1,y while1: blez $t0,endwhile1 # controllo subito la condizione add $t1,$t1,$t0 sub $t0,$t0,1 j while1 # rieseguo comunque il codice endwhile1: sw $t1,y # soluzione alternativa che riesegue solo se serve lw $t0,x # esempio di ripetizione while lw $t1,y blez $t0,endwhile2 # controllo subito la condizione while2: add $t1,$t1,$t0 sub $t0,$t0,1 bgtz $t0,while2 # rieseguo il codice finchè cond. vera endwhile2: sw $t1,y lw $t0,x # esempio di ripetizione do while lw $t1,y dowhile: add $t1,$t1,$t0 # eseguo almeno una volta il codice sub $t0,$t0,1 bgtz $t0,dowhile # rieseguo il codice finchè cond. vera sw $t1,y li $t0,1 # esempio di ripetizione for lw $t1,y loop: add $t1,$t1,$t0 addi $t0,$t0,1 ble $t0,5,loop # rieseguo il codice le volte stabilite sw $t1,y .data x: .word 3 # provare anche con un numero negativo y: .word 0