lw $t0, n # Cargamos el número de términos li $t1, 0 # Inicializamos un contador la $t2, fibonacci # Dirección del array de Fibonacci # Inicializar los dos primeros términos de Fibonacci li $t3, 0 # Primer término sw $t3, 0($t2) addi $t2, $t2, 4 # Avanzar en el array de Fibonacci li $t3, 1 # Segundo término sw $t3, 0($t2) # Imprimir el primer término (0) li $v0, 4 la $a0, mensaje1 syscall li $v0, 4 la $a0, salto syscall li $v0, 1 # Código de llamada para imprimir un entero move $a0, $t3 # Cargamos el primer término en $a0 syscall # Calcular los primeros 14 términos de Fibonacci li $t0, 14 loop_fibonacci: beqz $t0, end_fibonacci # Salir del bucle cuando hayamos calculado los 15 términos # Calcular el siguiente término de Fibonacci lw $t4, -4($t2) # Cargar el término anterior lw $t5, 0($t2) # Cargar el término anterior al anterior add $t6, $t4, $t5 # Sumar los dos términos anteriores sw $t6, 4($t2) # Almacenar el resultado en el array result # Imprimir el término actual li $v0, 4 la $a0, salto syscall li $v0, 1 # Código de llamada para imprimir un entero move $a0, $t6 # Cargamos el término actual en $a0 syscall addi $t2, $t2, 4 # Avanzar en el array de Fibonacci addi $t1, $t1, 1 # Incrementar el contador addi $t0, $t0, -1 # Decrementar el contador j loop_fibonacci end_fibonacci: li $v0, 10 # Salir del programa syscall