Suma de los n primeros números enteros en MIPS

#Escriba un programa que lea un numero n por teclado. A continuacion realizara una llamada #a una subrutina que devuelva la suma de los primeros n numeros enteros. Dicho resultado #ha de imprimirse por pantalla .data cad: .asciiz "Introduzca un numero entero: " cad2: .asciiz "\nEl resultado es: " .globl main .text main: li $v0, 4 #Llamada al sistema para imprimir una cadena la $a0, cad syscall li $v0, 5 #Llamada al sistema para leer un nœmero syscall move $a0, $v0 #Movemos el nœmero leido a $a0, que es el argumento de la funcion jal suma #Llamada a la funcion move $t0, $v0 #Se guarda el resultado en $t0 li $v0, 4 #Llamada al sistema para imprimir cadena la $a0, cad2 syscall li $v0, 1 #Imprimimos el resultado move $a0, $t0 syscall li $v0, 10 #Fin del main syscall #Funci—n suma suma: # El nœmero viene en $a0. Sumamos desde 1 hasta el valor de $a0 li $v0, 0 #Inicializamos el resultado move $t0, $a0 #Inicializamos $t0 con el valor de $a0 bucle: add $v0, $v0, $t0 # suma = suma + i addi $t0, $t0, -1 bne $t0, $zero, bucle #Si $t0 llega a 0, acabamos # El resultado queda en $v0 jr $ra #Fin de la función