	.data
str1:   .asciiz "hola mundo"
str2:	.asciiz "soy otro string"
mssg:	.ascii "Tamaño del string: "

	.text
main:

# Tamaño del string 1

	la $a0, str1
	jal len_str
	move $s0, $v0	# tamaño del string 1

	la $a0, mssg
	li $v0, 4 	# syscall code 4 is for print_str.
	syscall 	# make the syscall.

	move $a0, $s0
	li $v0, 1 	# syscall code 4 is for print_int.
	syscall 	# make the syscall.

# Tamaño del string 2

	la $a0, str2
	jal len_str
	move $s0, $v0	# tamaño del string 1

	la $a0, mssg
	li $v0, 4 	# syscall code 4 is for print_str.
	syscall 	# make the syscall.

	move $a0, $s0
	li $v0, 1 	# syscall code 4 is for print_int.
	syscall 	# make the syscall.

# Termina
	li $v0, 10 	# syscall code 10 is for exit.
	syscall 	# make the syscall.

# len_str
#
# Regresa el tamaño de un string
# Entrada:
#	$a0 - apuntador al string
#
# Salida:
#	$v0 - tamaño del string
#

len_str:
	li $t0, 0			# contador, $t0 = 0

ciclo:
	lb $t1, ($a0)			# $t1 = string[a0]
	beq $t1, $zero, return		# if $t1 == '\0' goto return
	addi $t0, $t0, 1		# $t0++
	addi $a0, $a0, 1		# $a0++
	j ciclo

return:
	move $v0, $t0			# regresa el tamaño en $v0
	jr $31
