#  ---------------------------------------------------------------------------------- 
#				tutorias.co  |  @tutorias
#  ----------------------------------------------------------------------------------

.data
message:  .asciiz	 	"Favor ingrese un numero: "
guion:	  .asciiz 	 	"-"	# guion tomara un separador

.text 
.globl main		

main:

li $s0 0			# registro controlador del ciclo
li $s1 -999			# carga entero cero (mayor)
li $s2 0			# carga entero cero (cMayor)
li $s3 999			# carga entero cero (menor)
li $s4 0			# carga entero cero (cMenor)
li $s5 5			# fin del ciclo for
li $s6 1			# carga constante 1

j for

for:

beq $s0 $s5 print
addi $s0 $s0 1

la $a0 message			# carga cadena message en $a0
li $v0 4			# carga $v0 a 4: permite mostrar una cadena
syscall
li $v0 5			# carga $v0 a 5: permite leer un entero
syscall				# llamada al sistema
move $t0 $v0			# mueve al registrador $t0 el valor leido

sle $t1 $t0 $s1			# compara if(numero <= mayor)
bne $t1 $zero elseMayor		# compara if($t3 == 0)
move $s1 $t0			# mayor = numero
move $s2 $s6			# cMayor = 1
j menor

elseMayor:
bne $t0 $s1 menor
addi $s2 $s2 1			# cMayor = cMayor + 1
j menor

menor:

slt $t1 $t0 $s3			# compara if(numero < menor)
beq $t1 $zero elseMenor		# compara if($t3 == 0)
move $s3 $t0			# menor = numero
move $s4 $s6			# cMenor = 1
j for

elseMenor:
bne $t0 $s3 for
addi $s4 $s4 1			# cMenor = cMenor + 1
j for


print:

move $a0 $s1
li $v0 1		# carga $v0 a 1: muestra un entero (mayor)			
syscall
la $a0 guion		# carga cadena message en $a0
li $v0 4		# carga $v0 a 4: permite mostrar una cadena
syscall
move $a0 $s2
li $v0 1		# carga $v0 a 1: muestra un entero (cMayor)			
syscall
la $a0 guion		# carga cadena message en $a0
li $v0 4		# carga $v0 a 4: permite mostrar una cadena
syscall
move $a0 $s3
li $v0 1		# carga $v0 a 1: muestra un entero(menor)			
syscall
la $a0 guion		# carga cadena message en $a0
li $v0 4		# carga $v0 a 4: permite mostrar una cadena
syscall
move $a0 $s4
li $v0 1		# carga $v0 a 1: muestra un entero(cMenor)			
syscall

j fin

fin:

li $v0 10	
syscall			# salida
