	.file	"126147.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
	.align 8
.LC0:
	.string	"Esto podr\303\255a suceder, pero no es com\303\272n porque existe una convenci\303\263n"
	.align 8
.LC1:
	.string	"que sugiere que siempre se ejecute un programa con su nombre como"
.LC2:
	.string	"primer argumento."
	.align 8
.LC3:
	.string	"Si no pasamos ningun argumento, de todas formas el sistema"
	.align 8
.LC4:
	.string	"operativo le pasa al programa de forma automatica el nombre"
	.align 8
.LC5:
	.string	"del archivo ejecutado como primer argumento."
.LC6:
	.string	"argv[0]: %s\n"
	.align 8
.LC7:
	.string	"Si solo pasamos un argumento, ahora lo que tendremos es:"
	.align 8
.LC8:
	.string	" - el default (nombre del programa)      en argv[0]"
	.align 8
.LC9:
	.string	" - cual sea que sea el argumento pasado, en argv[1]"
.LC10:
	.string	"argv[1]: %s\n"
	.align 8
.LC11:
	.string	"Podemos pasarle dos argumentos, y entonces tendremos el nombre del programa"
	.align 8
.LC12:
	.string	"en argv [0], el primer argumento en argv[1] y el segundo en argv[2] "
.LC13:
	.string	"argv[2]: %s\n"
	.align 8
.LC14:
	.string	"Podemos pasarle cualquier cantidad de argumentos, y tendremos:"
	.align 8
.LC15:
	.string	" - el nombre del programa en argv[0]"
	.align 8
.LC16:
	.string	" - cada argumento pasado en las posiciones de [1] hasta [argc-1]"
	.align 8
.LC17:
	.string	"En total tenemos %i argumentos\n"
	.align 8
.LC18:
	.string	"el nombre del programa, como siempre:"
.LC19:
	.string	"  argv[0]: %s\n"
.LC20:
	.string	"y %i dados por el usuario:\n"
.LC21:
	.string	"  argv[%i]: %s\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	cmp	DWORD PTR -20[rbp], 0
	jne	.L2
	lea	rdi, .LC0[rip]
	call	puts@PLT
	lea	rdi, .LC1[rip]
	call	puts@PLT
	lea	rdi, .LC2[rip]
	call	puts@PLT
	mov	edi, -1
	call	exit@PLT
.L2:
	cmp	DWORD PTR -20[rbp], 1
	jne	.L3
	lea	rdi, .LC3[rip]
	call	puts@PLT
	lea	rdi, .LC4[rip]
	call	puts@PLT
	lea	rdi, .LC5[rip]
	call	puts@PLT
	mov	edi, 10
	call	putchar@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L4
.L3:
	cmp	DWORD PTR -20[rbp], 2
	jne	.L5
	lea	rdi, .LC7[rip]
	call	puts@PLT
	lea	rdi, .LC8[rip]
	call	puts@PLT
	lea	rdi, .LC9[rip]
	call	puts@PLT
	mov	edi, 10
	call	putchar@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L4
.L5:
	cmp	DWORD PTR -20[rbp], 3
	jne	.L6
	lea	rdi, .LC11[rip]
	call	puts@PLT
	lea	rdi, .LC12[rip]
	call	puts@PLT
	mov	edi, 10
	call	putchar@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L4
.L6:
	lea	rdi, .LC14[rip]
	call	puts@PLT
	lea	rdi, .LC15[rip]
	call	puts@PLT
	lea	rdi, .LC16[rip]
	call	puts@PLT
	mov	edi, 10
	call	putchar@PLT
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, eax
	lea	rdi, .LC17[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC18[rip]
	call	puts@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, .LC19[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR -20[rbp]
	sub	eax, 1
	mov	esi, eax
	lea	rdi, .LC20[rip]
	mov	eax, 0
	call	printf@PLT
	mov	DWORD PTR -4[rbp], 1
	jmp	.L7
.L8:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	lea	rdi, .LC21[rip]
	mov	eax, 0
	call	printf@PLT
	add	DWORD PTR -4[rbp], 1
.L7:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L8
.L4:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"126147.c"
	.text
	.section	.rodata
	.align	2
.LC0:
	.ascii	"Esto podr\303\255a suceder, pero no es com\303\272n"
	.ascii	" porque existe una convenci\303\263n\000"
	.align	2
.LC1:
	.ascii	"que sugiere que siempre se ejecute un programa con "
	.ascii	"su nombre como\000"
	.align	2
.LC2:
	.ascii	"primer argumento.\000"
	.align	2
.LC3:
	.ascii	"Si no pasamos ningun argumento, de todas formas el "
	.ascii	"sistema\000"
	.align	2
.LC4:
	.ascii	"operativo le pasa al programa de forma automatica e"
	.ascii	"l nombre\000"
	.align	2
.LC5:
	.ascii	"del archivo ejecutado como primer argumento.\000"
	.align	2
.LC6:
	.ascii	"argv[0]: %s\012\000"
	.align	2
.LC7:
	.ascii	"Si solo pasamos un argumento, ahora lo que tendremo"
	.ascii	"s es:\000"
	.align	2
.LC8:
	.ascii	" - el default (nombre del programa)      en argv[0]"
	.ascii	"\000"
	.align	2
.LC9:
	.ascii	" - cual sea que sea el argumento pasado, en argv[1]"
	.ascii	"\000"
	.align	2
.LC10:
	.ascii	"argv[1]: %s\012\000"
	.align	2
.LC11:
	.ascii	"Podemos pasarle dos argumentos, y entonces tendremo"
	.ascii	"s el nombre del programa\000"
	.align	2
.LC12:
	.ascii	"en argv [0], el primer argumento en argv[1] y el se"
	.ascii	"gundo en argv[2] \000"
	.align	2
.LC13:
	.ascii	"argv[2]: %s\012\000"
	.align	2
.LC14:
	.ascii	"Podemos pasarle cualquier cantidad de argumentos, y"
	.ascii	" tendremos:\000"
	.align	2
.LC15:
	.ascii	" - el nombre del programa en argv[0]\000"
	.align	2
.LC16:
	.ascii	" - cada argumento pasado en las posiciones de [1] h"
	.ascii	"asta [argc-1]\000"
	.align	2
.LC17:
	.ascii	"En total tenemos %i argumentos\012\000"
	.align	2
.LC18:
	.ascii	"el nombre del programa, como siempre:\000"
	.align	2
.LC19:
	.ascii	"  argv[0]: %s\012\000"
	.align	2
.LC20:
	.ascii	"y %i dados por el usuario:\012\000"
	.align	2
.LC21:
	.ascii	"  argv[%i]: %s\012\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L2
	ldr	r0, .L10
	bl	puts
	ldr	r0, .L10+4
	bl	puts
	ldr	r0, .L10+8
	bl	puts
	mvn	r0, #0
	bl	exit
.L2:
	ldr	r3, [fp, #-16]
	cmp	r3, #1
	bne	.L3
	ldr	r0, .L10+12
	bl	puts
	ldr	r0, .L10+16
	bl	puts
	ldr	r0, .L10+20
	bl	puts
	mov	r0, #10
	bl	putchar
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L10+24
	bl	printf
	b	.L4
.L3:
	ldr	r3, [fp, #-16]
	cmp	r3, #2
	bne	.L5
	ldr	r0, .L10+28
	bl	puts
	ldr	r0, .L10+32
	bl	puts
	ldr	r0, .L10+36
	bl	puts
	mov	r0, #10
	bl	putchar
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L10+24
	bl	printf
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L10+40
	bl	printf
	b	.L4
.L5:
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	bne	.L6
	ldr	r0, .L10+44
	bl	puts
	ldr	r0, .L10+48
	bl	puts
	mov	r0, #10
	bl	putchar
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L10+24
	bl	printf
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L10+40
	bl	printf
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L10+52
	bl	printf
	b	.L4
.L6:
	ldr	r0, .L10+56
	bl	puts
	ldr	r0, .L10+60
	bl	puts
	ldr	r0, .L10+64
	bl	puts
	mov	r0, #10
	bl	putchar
	ldr	r1, [fp, #-16]
	ldr	r0, .L10+68
	bl	printf
	ldr	r0, .L10+72
	bl	puts
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L10+76
	bl	printf
	ldr	r3, [fp, #-16]
	sub	r3, r3, #1
	mov	r1, r3
	ldr	r0, .L10+80
	bl	printf
	mov	r3, #1
	str	r3, [fp, #-8]
	b	.L7
.L8:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, .L10+84
	bl	printf
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L7:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L8
.L4:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L11:
	.align	2
.L10:
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.word	.LC21
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
