Code:
#da un array di 10 elementi #contare gli elementi positivi in $8 #contare gli elementi negativi in $9 # del primo array nel secondo # $1=i # $2= spiaz i # $9=j= positivi # $8=k= negativi # $4=temp # $5=temp2 # $6=1 # $ 7= 1000 inizio vettore %start = 1040 add $1,$0,$0 #inizializzo i add $2,$0,$0 # inizializzo spiaz 1 add $8,$0,$0 # inizializzo j add $9,$0,$0 # inizializzo k addi $6,$0,1 # inizializzo reg6 a 1 addi $7,$0,1000 # inizializzo vettore base inizio_for: slti $4,$1,10 # verifica se i<10 beq $4,$0,saltofor # se i>=10 salta inizio_if: add $4,$2,$7 # somma vettore base + indice lw $4,0($4) # carico il contentuto di vet[i] slt $5,$4,$0 # vedo se vet[i]< 0 bne $5,$6,if_else # se diverso da 1 salta addi $8,$8,1 # incrementa j j fine_if # salto l'else if_else: addi $9,$9,1 #incremento k fine_if: addi $1,$1,1 #incremento i add $2,$1,$1 # incremento spiaz i add $2,$2,$2 j inizio_for saltofor: add $0,$0,$0