main: #iniccializacion de los primeros terminos li $t0, 1 li $t1, 0 sw $t0, terminFIBO($zero) # Guardar 1 en fibonacci[0] sw $t1, terminFIBO($t2) # Guardar 0 en fibonacci[1] # generador de los terminos siguientes addi $t2, $zero, 1 #el indice donde se encuentra addi $t3, $zero, 8 # cantidad de terminos de la serie que desea imprimir serie: add $t4, $t0, $t1 # Calcular el siguiente termino sll $t5, $t2, 2 # utilizamos la funcion para correr a la izquierdad y asi ejecutar la multiplicacion add $t6, $t5, $t5 # Multiplicar el desplazamiento por 2 para obtener el desplazamiento en bytes la $t7, terminFIBO # Cargar la direccion en un registro add $t6, $t6, $t7 #sumar sw $t4, 0($t6) # almacenar el termino siguiente add $t0, $t1, $zero # actualizar cada termino anterior add $t1, $t4, $zero addi $t2, $t2, 1 # incremento del indice subi $t3, $t3, 1 # reducir el contador bnez $t3, serie # realzar cada instruccion hasta que se complete la cantidad de terminos que el usuario requería addi $t2, $zero, 0 addi $t3, $zero, 8 # Reiniciar el contador mostrar: sll $t6, $t2, 2 # Multiplicar el indice del termino actual por 4 para obtener el desplazamiento en bytes add $t6, $t6, $t6 # Multiplicar el desplazamiento por 2 para obtener el desplazamiento en bytes la $t7, terminFIBO add $t6, $t6, $t7 lw $a0, 0($t6) li $v0, 1 syscall add $t2, $t2, 1 # incremento del termino sub $t3, $t3, 1 # Decrementar el contador bnez $t3, mostrar #repetir hasta que se cumpla la impresion li $v0, 10 syscall