# INSERIRE: VOLPATO ALESSANDRO GRADENIGO ADT41 # CALCOLA LA SOMMA DEI VALORI DI UN DATO VETTORE #===================================================== print_int = 1 print_string = 4 exit = 10 #========================================================== .data vet: .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 dim: .word 12 str: .asciiz "\nLa somma dei valori e': " #======================================================== .text .globl main main: la $a0, vet #carica in $a0 l'indirizzo del vettore la $t0, dim lw $a1, 0($t0) jal vet_sum move $t0, $v0 #salva in $t0 la somma la $a0, str li $v0, 4 syscall move $a0, $t0 #stampa la somma degli elementi li $v0, 1 syscall #INSERIRE IL CODICE DEL MAIN #===================================================== #fine li $v0,10 syscall #exit #===================================================== vet_sum: #$a0 ingresso indirizzo vettore #$a1 num elem #$v0 uscita somma elementi move $t0, $a0 #puntatore al vettore li $t1, 1 #inizializza contatore li $v0, 0 #inizializza la somma ciclo: lw $t2, 0($a0) #carica in $t2 il primo elemento del vettore add $v0, $v0, $t2 #inizia la somma degli elementi salvando in $v0 addi $a0, 4 #incrementa le variabili addi $t1, 1 slt $t3, $a1, $t1 beq $t3, $zero, ciclo #va a ciclo se contatore t1 <= num elem a0 jr $ra #===================================================== # input: $a0 = indirizzo del vettore # input: $a1 = numero elementi del vettore # output: $v0 = somma dei valori del vettore #======================================================== #INSERIRE IL CODICE DELLA FUNZIONE VET_SUM #========================================================