Code:
#vet a 10 ele
#vet b 10 ele
#vet c 10 ele
#
#vet a base 1000 a 1039
#vet b base 1040 a 1079
#vet c base 1080 a 1119
#
#program start 1120
#
#
#for ( i=0;i<10;i++)
# if (a[i] % 4 == 0)
# c[i]=a[i]
# else
# c[i]=b[i]
#
#
#$1=i
#$2= spiaz i
#$3= temp, a[i],b[i]
#$4 = temp, and, c[i]
%veta = 1000
%vetb = 1040
%vetc = 1080
%start = 1120
add $1,$0,$0 #iniz i
add $2,$0,$0 # iniz spiaz i
for_begin: slti $3,$1,10 # i<10
beq $3,$0,fine_for # controllo indice for
inizio_if: addi $3,$2,1000 # calcolo indirizzo di a[i]
lw $3,0($3) # caricamento di a[i]
andi $4,$3,3 # calcolo mod 4
bne $4,$0,if_else # salto if
addi $4,$2,1080 # determino indirizzo di c[i]
sw $3,0($4) # caricamento di c[i]
j fine_if
if_else: addi $3,$2,1040 # indirizzo di b[i]
lw $3,0($3) # caricamento di b[i]
addi $4,$2,1080 # determino indirizzo di c[i]
sw $3,0($4) # caricamento di c[i]
fine_if: addi $1,$1,1 # incremento i
add $2,$1,$1 # spiazzmento i
add $2,$2,$2
j for_begin # cicla il for
fine_for: add $0,$0,$0 # termine