#costruisce in memoria un array di un numero dato di numeri (enne) e chiama la procedura di calcolo della media .data primoNumero: .word 23 enne: .word 10 .text main: addi $t3, $zero, 1 #inizializzo a 1 il contenuto di $t3 che sara' il contatore dei numeri da aggiungere in memoria lw $t2, enne #metto in $t2 il numero degli elementi dall'array da costruire la $t0, primoNumero #metto in $t0 indirizzo d'inizio dell'array lw $t1, 0($t0) #metto in $t1 il primo valore dell'array ciclo: add $t1, $t1, 1 #incremento di 1 il primo valore add $t0, $t0, 4 #incremento $t0 di 4 (ogni elemento dell'array ha dimensione di una word) sw $t1, 0($t0) #memorizzo nella word successiva (offset 4) il valore incrementato addi $t3, 1 bne $t3, $t2, ciclo #se non ho raggiunto il numero di elementi voluti, ripeto il ciclo #fineciclo: addi $sp, $sp, -4 la $a0, primoNumero add $a1, $zero, $t2 jal mean lw $ra, 0($sp) addi $sp, $sp, 4 #salvo e stampo addi $t4, $zero, 4 mul $t3, $t4, $t2 add $t3, $t3, $a0 sw $v0, ($t3) #salvo in memoria (subito dopo l'ultimo elemento dell'array - offset=10*4) il valore della media move $a0, $v0 #copio in $a0 (primo parametro del system call) il valore contenuto in $v0 (somma degli elementi dell'array) li $v0, 1 #system call per print integer (stampa di un intero) syscall li $v0, 10 syscall