Lee.s



.text			# Inicio

			# Debemos exportar el punto de inicio al ligador.
   .global main		# Por defecto main.


main:
# Lectura del teclado.
	# Manda mensaje de solicitud de N
	movl    $4,	%eax		# funcion write
        movl    $1,	%ebx		# io
        movl    $Sol,	%ecx		# cadena a mostrar
        movl    $SSize,	%edx		# Longitud de lo que se lee
        int     $0x80			# llamada al sistema
#########################################
	movl    $3,     %eax		# funcion read
        movl    $1,     %ebx		# io
        movl    $3,	%edx		# Longitud de lo que se lee
        int     $0x80			# llamada al sistema
#########################################
	movb	(%ecx),	%al		# se lee el primer byte. (si es 23 entonces es el 2)
	subl	$48,	%eax		# Como se lee un ascii, hay que restarle 48 (1 = 49 entonces 49 - 48 = 1)
	movl	$10,	%ebx		# se almacena un 10 para el producto
	mul	%ebx			# se multiplica por 10 y se guarda en eax
	movb	1(%ecx), %bl		# se lee el segundo byte. (si es 23 entonces es el 3)
	subl	$48,	%ebx		# Como se lee un ascii, hay que restarle 48 (1 = 49 entonces 49 - 48 = 1)
	addl	%ebx,	%eax		# se le suman las unidades a eax. (20 + 3 = 23)
	movl	%eax,	%ecx		# se transfiere eax a ecx dada la logica del programa (ciclo)
#########################################
ciclo:
        pushl    %ecx
	movl	$4,	%eax
        movl    $1,	%ebx
        movl    $Cad,	%ecx
        movl    $CSize,	%edx
        int     $0x80
        popl	%ecx
        loop    ciclo
        jmp     salir

salir:
        movl    $0,%ebx
        movl    $1,%eax
        int     $0x80

.data                                   # Seccion de datos

        Sol:    .ascii  "Introduce la cantidad: "
                SSize = . - Sol
        Cad:    .ascii "R"
                CSize = . - Cad
	DIF:	.ascii	"00"