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