### lab02a.asm ### Nome 1 - Matricula 1 ### Nome 2 - Matricula 2 ### ### Imprime na tela o conteudo de um array ### ### ### Para executar ... ### ### >$ spim ### (spim) read "lab02a.asm" ### (spim) run ### ### ------------------------------------------------------------------- ### ------------------------------------------------------------------- ### Area de Dados (Defina os dados aqui) ### ------------------------------------------------------------------- ### ------------------------------------------------------------------ ### Area de Codigo ### ------------------------------------------------------------------ .text .globl main .globl loop # Apenas para facilitar a insercao de breakpoints main: addiu $sp, $sp, -4 sw $ra, 0($sp) # Carregar o tamanho do array no registrador $s1 # Criar um ponteiro para o array no registrador $s0 loop: blez $s1, fim # Carregar elemento do array no registrador $t0 # Mover elemento do array para o registrador $a0 # Imprime elemento do array jal print_element # Atualize o ponteiro do array para o proximo elemento addiu $s0, $s0, 4 # Atualize o numero de elementos que faltam para imprimir addiu $s1, $s1, -1 j loop fim: lw $ra, 0($sp) addiu $sp, $sp, 4 jr $ra ### ------------------------------------------------------------------ ### Funcao para imprimir elemento na tela ### ------------------------------------------------------------------ .data .globl newline newline: .asciiz "\n" .text .globl print_element print_element: li $v0, 1 syscall li $v0, 4 la $a0 newline syscall jr $ra