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