####################################
# se imprime N veces el caracter C #
# OJO: <<< N es de 1 digito >>> #
####################################
.text # Inicio
# Debemos exportar el punto de inicio al ligador.
.global main # Por defecto main.
main:
# Pide la cantidad de repeticion
# Manda mensaje de solicitud de N
movl $4, %eax # Funcion escritura
movl $1, %ebx # io
movl $PideN, %ecx # mensaje
movl $LonPN, %edx # longitud del mensaje
int $0x80 # llamada al sistema
# Lee la cantidad de repeticion
movl $3, %eax # funcion lectura
movl $1, %ebx # io
movl $2, %edx # longitud de lo que se va a leer (1 y el enter 2)
int $0x80
# Como se lee un ascii, hay que restarle 48 (1 = 49 entonces 49 - 48 = 1)
movb (%ecx), %al
subl $48, %eax
pushl %eax # Se respalda N en la pila
# Pide el caracter a repetir
movl $4, %eax
movl $1, %ebx
movl $PideC, %ecx
movl $LonPC, %edx
int $0x80
# Lee el caracter a repetir
movl $3, %eax # funcion lectura
movl $1, %ebx
movl $2, %edx # Longitud
int $0x80
movl %ecx, %eax # se guarda en eax por la logica del programa (ciclo)
popl %ecx # Se obtiene N
pushl %eax # Se guarda el Caracter
ciclo:
pushl %ecx # Se guarda N
movl $1, %ebx
popl %eax # Se lee N
popl %ecx # Se fija el caracter
pushl %ecx # Se guarda el caracter
pushl %eax # Se guarda N
movl $1, %edx
movl $4, %eax
int $0x80
popl %ecx # Se pone N en %ecx para ser usada con loop
loop ciclo
jmp salir
salir:
movl $0,%ebx
movl $1,%eax
int $0x80
.data # Seccion de datos
PideN: .ascii "Introduce la cantidad: "
LonPN = . - PideN
PideC:
.ascii "Introduce el caracter: "
LonPC = .-PideC