#################################### # 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