ArchiTecnologia

Aprendizaje abierto. Conocimiento libre.

ArchiTecnologia
ProgramaciónTutorial

Programación: introducción

La serie de artículos de programación comienza aquí, con una sencilla introducción para que puedas comprender la programación desde cero. De hecho, te recomiendo que leas los artículos de la serie RISC-V para ayudarte a entender mucho mejor cómo funciona una computadora.

Voy a intentar que esta serie de artículos sea algo diferente. He visto gran cantidad de vídeos, artículos y otro tipo de contenido, donde se limitan a enseñarte un lenguaje de programación con teoría acompañada de pequeños snippets o fragmentos de código como ejemplo de cada lección. En esos casos, el estudiante básicamente se limita a leer e imitar o, en el mejor de los casos, modificando sobre la marcha los códigos para crear pequeños programas derivados de los ejemplos. 

Pero eso tiene un problema de base, y es que me he dado cuenta que cuando los estudiantes intentan hacer algo más que modificar un código y se deciden a crear un programa desde cero, no saben realmente cómo diseñar el programa o cómo enfrentarse a un problema muy diferente al que viene en los ejemplos. Eso es lo que intentaré que cambie en esta serie de artículos, para darte las herramientas para que puedas terminar diseñando tus propios programas desde cero

¿Qué es un lenguaje de programación?

Es un lenguaje formal compuesto por una serie de símbolos y reglas que permiten elaborar algoritmos introduciendo una serie de instrucciones y datos. Cada lenguaje de programación tiene una sintaxis diferente, y una serie de detalles que lo diferencian del resto. Por ejemplo, unas nomemclaturas estándar (snake_case, kebab-case, CamelCase, UPPERCASE) y palabras reservadas que varían.

Los lenguajes de programación no son comprensibles por la máquina, deben ser procesados para que el hardware los comprenda. Dentro de los lenguajes podemos diferenciar entre:

  • Lenguaje máquina: también llamado de primera generación o 1GL. Es el único lenguaje que sí es directamente comprensible por el hardware. Es decir, un código binario compuesto por unos y ceros que se puede almacenar en una memoria y es interpretado por la electrónica como tensiones altas y bajas. No obstante, incluso este lenguaje máquina no es comprensible por todas las máquinas, sino por aquellas para las que haya sido creado (código nativo). Tú no entiendes todos los lenguajes, ¿verdad? Una CPU SPARC tampoco comprende un binario para ARM o viceversa…
  • Lenguaje de bajo nivel (ensamblador): también conocido como lenguaje de segunda generación o 2GL. Es un lenguaje complejo pero entendible por los humanos. Se compone de una sintáxis específica para introducir datos en distintos formatos y unos mnemónicos que hacen referencia a las instrucciones que se pueden usar por una determinada ISA. Si escribes un programa en lenguaje ensamblador y generas un binario comprensible por la máquina a partir de él, solo será comprensible por una familia concreta. Al igual que ocurre con el lenguaje máquina, el código ensamblador o ASM para x86 no funcionaría en PPC o viceversa…
  • Lenguaje de alto nivel: existen muchos lenguajes de alto nivel. En estos casos son mucho más intuitivos para las personas y tienen un nivel de abstracción mayor, permitiendo que un código fuente escrito en un lenguaje de alto nivel pueda funcionar en nuestra arquitectura si lo compilamos de forma normal o en otras arquitecturas diferntes si se compila desde una máquina con dica arquitectura o se usa compilación cruzada desde una máquina con arquitectura diferente. Ejemplos de estos lenguajes son Cobol, Fortran, C#, C++, Basic, Pascal, etc.
  • Lenguaje de medio nivel: normalmente no todos los autores hacen uso de esta categoría, pero existen algunos lenguajes de medio nivel, es decir, apartentemente son lenguajes de alto nivel, pero permiten programar en algunos casos a bajo nivel. Ejemplo de ello es C y Basic.

A parte de poderlos catalogar desde ese punto de vista, también se puede hacer distinción entre:

  • Lenguaje de programación compilado: cualquier lenguaje que necesite de un compilador para generar el binario o ejecutable. La ventaja es que tienen a tener mejor rendimiento al no tener que traducirlos en tiempo real o tener un intérprete ejecutándose de forma simultánea. Portar este tipo de códigos es posible en muchos casos, pero puede que haya algunos casos específicos en los que no se pueda ejecutar en otra plataforma cuando se ha hecho uso de ciertas syscalls que limitan su compatibilidad a un cierto sistema operativo, uso de cierta API o biblioteca de la que dependa, o ser compilados para una arquitectura específica. Ejemplos C, C++, Pascal, ADA, Haskell, D,…
  • Lenguaje de programación interpretado: cualquier lenguaje que necesite de un intérprete o máquina virtual para ser traducido o interpretado en tiempo de ejecución. Eso los hace menos eficientes, aunque tiene la ventaja de que son códigos muy portables que pueden ser ejecutados en cualquier máquina en la que se pueda instalar el intérprete o máquina virtual. Ejemplos Ruby, Python, Java,…

Definición de algoritmo:

Un algoritmo, y aquí está la clave de los problemas que comentaba sobre la capacidad de crear un programa desde cero, es un conjunto de pasos ordenados y finitos que permiten resolver un problema o tarea específica. Si sabes diseñar un algoritmo podrás luego trasladarlo fácilmente a código fuente y poder crear el programa que quieras sin necesidad de usar códigos ya creados para modificarlos, etc.

El algoritmo es totalmente abstraído de todo, tanto del hardware en el que se vaya a ejecutar como del lenguaje de programación que se vaya a usar para implementarlo. Por tanto, si diseñas un algoritmo lo puedes trasladar al lenguaje que quieras y hacerlo correr en la máquina que necesites (o casi siempre).

Algunas de sus características de los algoritmos computacionales son:

  • Finito: debe tener un primer paso y un último paso, por tanto, un número finito de instrucciones.
  • Preciso: debe tener un orden entre los pasos desde inicio a fin.
  • Definido: no debe ser ambiguo o dar pie a dobles interpretaciones. Cada vez que se ejecute puede dar resultados diferentes a su salida, pero no debido a interpretaciones distintas, sino a la entrada de datos distintos.

Por ejemplo, si te gusta cocinar, un algoritmo podría ser la propia receta. Por ejemplo, el algoritmo para hacer huevo frito sería:

  1. Inicio.
  2. Coge una sartén.
  3. Pon la sartén sobre la placa.
  4. Añade aceite a la sartén.
  5. Enciende el fuego.
  6. Espera a que se caliente el aceite.
  7. Parte un huevo.
  8. Agrega el contenido al aceite.
  9. Espera a que esté frito.
  10. Retira la sartén del fuego.
  11. Apaga el fuego.
  12. Retira el huevo del aceite.
  13. Ponlo en un plato.
  14. Fin.

Como «chiste», permíteme decir que si la receta de propietaria solo podrías comerte el huevo, pero no ver cómo se hace, ni compartirla, ni modificarla,…

El algoritmo, como ya veremos en los ejemplos, se puede también dibujar en forma de diagrama de flujo que sería mucho más gráfico e intuitivo. Además, también se puede crear un pseudocódigo que nos ayude a exportar mejor el diagrama a un lenguaje deprogramación.

Definición de programa:

Básicamente un programa es una serie de instrucciones y datos almacenados en una memoria y listos para ser procesados por el procesador. Las instrucciones serán interpretadas por la CPU y realizarán una operación sobre los datos para obtener los resultados buscados. Las instrucciones del programa tendrán un orden concreto, y deben ser ejecutadas en dicho orden para dar un resultado válido (ya veremos que esto no es del todo así en las modernas microarquitecturas).

Para que ese programa se haya podido almacenar en la memoria y ser procesado, ya sabes que debe estar en código máquina. Y para llegar ahí, antes debemos haber escrito un código fuente, es decir, un fichero con una serie de líneas de código escrito en algún lenguaje de programación.

En definitiva, un programa o proceso son órdenes para el hardware

Proceso de compilación:

Proceso de compilación en GCC

Antes comenté que los lenguajes de programación no eran comprensibles por la máquina y para que sí lo sean, deben pasar un proceso que vamos a explicar ahora. Pero antes recuerda la diferencia entre lenguaje interpretado vs compilado. Aquí nos vamos a centrar en el compilado, que debe pasar el siguiente proceso para ser comprendido por el hardware.

Aunque el proceso esté compuesto por varias etapas, entre ellas la compilación, para poder transformar ese lenguaje de alto/medio nivel en un binario, se suele denominar a todo el proceso completo como compilación. Vamos a hacer algo, abre un terminal en tu GNU/Linux y ve haciendo todo el proceso a la par que lees, seguro que lo vas a captar mejor:

¡Tranquilo, si no entiendes el código no es necesario por el momento!

Abre un editor de texto para escribir un código fuente llamado hola.c:

nano hola.c

Dentro del fichero escribe el siguiente código en lenguaje C:

#include <stdio.h>

int main() {
     printf("Hola mundo\n");
     return 0;
}

Guarda los cambios Ctrl + O y cierra el fichero Ctrl + X. Ahora vamos a compilarlo con GNU GCC:

gcc hola.c -o hola

Se nos ha creado un binario llamado hola. Hemos conseguido que ese snipet en C sea comprensible por nuestra CPU y lo podemos ejecutar y ver el resultado:

./hola

Si lo que quieres es ver el código ensamblador equivalente, es decir, las instrucciones del repertorio que se han usado para poder implementar el Hola Mundo por la CPU:

gcc -S hola.c
cat hola.s

Y obtendrás algo similar a esto:

	.file	"hola.c"
	.section	.rodata
.LC0:
	.string	"Hola"
	.text
	.globl	main
	.type	main, @function
main:
.LFB0:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	$.LC0, %edi
	call	puts
	movl	$0, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609"
	.section	.note.GNU-stack,"",@progbits

Ves que se han usado, en este caso, instrucciones del set x86 como MOVL, POPQ, PUSHQ,… Por tanto, sería comprensible por una CPU de esta familia, pero no por otra. Fíjate lo distinto que es un ASM de ARM:

.text            
.global _start
_start:
    mov r0, #1
    ldr r1, =message
    ldr r2, =len
    mov r7, #4
    swi 0

    mov r7, #1
    swi 0

.data
message:
    .asciz "Hola mundo\n"
len = .-message  

Instrucciones diferentes, registros diferentes,… eso es lo que está definido en la ISA. ¿Recuerdas?

Igual para el binario:

objdump -D hola

El resultado sería algo como:

hola:     formato del fichero elf64-x86-64


Desensamblado de la sección .interp:

0000000000400238 <.interp>:
  400238:	2f                   	(bad)  
  400239:	6c                   	insb   (%dx),%es:(%rdi)
  40023a:	69 62 36 34 2f 6c 64 	imul   $0x646c2f34,0x36(%rdx),%esp
  400241:	2d 6c 69 6e 75       	sub    $0x756e696c,%eax
  400246:	78 2d                	js     400275 <_init-0x153>
  400248:	78 38                	js     400282 <_init-0x146>
  40024a:	36 2d 36 34 2e 73    	ss sub $0x732e3436,%eax
  400250:	6f                   	outsl  %ds:(%rsi),(%dx)
  400251:	2e 32 00             	xor    %cs:(%rax),%al

Desensamblado de la sección .note.ABI-tag:

0000000000400254 <.note.ABI-tag>:
  400254:	04 00                	add    $0x0,%al
  400256:	00 00                	add    %al,(%rax)
  400258:	10 00                	adc    %al,(%rax)
  40025a:	00 00                	add    %al,(%rax)
  40025c:	01 00                	add    %eax,(%rax)
  40025e:	00 00                	add    %al,(%rax)
  400260:	47                   	rex.RXB
  400261:	4e 55                	rex.WRX push %rbp
  400263:	00 00                	add    %al,(%rax)
  400265:	00 00                	add    %al,(%rax)
  400267:	00 02                	add    %al,(%rdx)
  400269:	00 00                	add    %al,(%rax)
  40026b:	00 06                	add    %al,(%rsi)
  40026d:	00 00                	add    %al,(%rax)
  40026f:	00 20                	add    %ah,(%rax)
  400271:	00 00                	add    %al,(%rax)
	...

Desensamblado de la sección .note.gnu.build-id:

0000000000400274 <.note.gnu.build-id>:
  400274:	04 00                	add    $0x0,%al
  400276:	00 00                	add    %al,(%rax)
  400278:	14 00                	adc    $0x0,%al
  40027a:	00 00                	add    %al,(%rax)
  40027c:	03 00                	add    (%rax),%eax
  40027e:	00 00                	add    %al,(%rax)
  400280:	47                   	rex.RXB
  400281:	4e 55                	rex.WRX push %rbp
  400283:	00 0f                	add    %cl,(%rdi)
  400285:	61                   	(bad)  
  400286:	d8 18                	fcomps (%rax)
  400288:	12 22                	adc    (%rdx),%ah
  40028a:	19 de                	sbb    %ebx,%esi
  40028c:	88 98 7d 23 64 0b    	mov    %bl,0xb64237d(%rax)
  400292:	1e                   	(bad)  
  400293:	36 4b 86 fe          	ss rex.WXB xchg %dil,%r14b
  400297:	e5                   	.byte 0xe5

Desensamblado de la sección .gnu.hash:

0000000000400298 <.gnu.hash>:
  400298:	01 00                	add    %eax,(%rax)
  40029a:	00 00                	add    %al,(%rax)
  40029c:	01 00                	add    %eax,(%rax)
  40029e:	00 00                	add    %al,(%rax)
  4002a0:	01 00                	add    %eax,(%rax)
	...

Desensamblado de la sección .dynsym:

00000000004002b8 <.dynsym>:
	...
  4002d0:	0b 00                	or     (%rax),%eax
  4002d2:	00 00                	add    %al,(%rax)
  4002d4:	12 00                	adc    (%rax),%al
	...
  4002e6:	00 00                	add    %al,(%rax)
  4002e8:	10 00                	adc    %al,(%rax)
  4002ea:	00 00                	add    %al,(%rax)
  4002ec:	12 00                	adc    (%rax),%al
	...
  4002fe:	00 00                	add    %al,(%rax)
  400300:	22 00                	and    (%rax),%al
  400302:	00 00                	add    %al,(%rax)
  400304:	20 00                	and    %al,(%rax)
	...

Desensamblado de la sección .dynstr:

0000000000400318 <.dynstr>:
  400318:	00 6c 69 62          	add    %ch,0x62(%rcx,%rbp,2)
  40031c:	63 2e                	movslq (%rsi),%ebp
  40031e:	73 6f                	jae    40038f <_init-0x39>
  400320:	2e 36 00 70 75       	cs add %dh,%ss:0x75(%rax)
  400325:	74 73                	je     40039a <_init-0x2e>
  400327:	00 5f 5f             	add    %bl,0x5f(%rdi)
  40032a:	6c                   	insb   (%dx),%es:(%rdi)
  40032b:	69 62 63 5f 73 74 61 	imul   $0x6174735f,0x63(%rdx),%esp
  400332:	72 74                	jb     4003a8 <_init-0x20>
  400334:	5f                   	pop    %rdi
  400335:	6d                   	insl   (%dx),%es:(%rdi)
  400336:	61                   	(bad)  
  400337:	69 6e 00 5f 5f 67 6d 	imul   $0x6d675f5f,0x0(%rsi),%ebp
  40033e:	6f                   	outsl  %ds:(%rsi),(%dx)
  40033f:	6e                   	outsb  %ds:(%rsi),(%dx)
  400340:	5f                   	pop    %rdi
  400341:	73 74                	jae    4003b7 <_init-0x11>
  400343:	61                   	(bad)  
  400344:	72 74                	jb     4003ba <_init-0xe>
  400346:	5f                   	pop    %rdi
  400347:	5f                   	pop    %rdi
  400348:	00 47 4c             	add    %al,0x4c(%rdi)
  40034b:	49                   	rex.WB
  40034c:	42                   	rex.X
  40034d:	43 5f                	rex.XB pop %r15
  40034f:	32 2e                	xor    (%rsi),%ch
  400351:	32 2e                	xor    (%rsi),%ch
  400353:	35                   	.byte 0x35
	...

Desensamblado de la sección .gnu.version:

0000000000400356 <.gnu.version>:
  400356:	00 00                	add    %al,(%rax)
  400358:	02 00                	add    (%rax),%al
  40035a:	02 00                	add    (%rax),%al
	...

Desensamblado de la sección .gnu.version_r:

0000000000400360 <.gnu.version_r>:
  400360:	01 00                	add    %eax,(%rax)
  400362:	01 00                	add    %eax,(%rax)
  400364:	01 00                	add    %eax,(%rax)
  400366:	00 00                	add    %al,(%rax)
  400368:	10 00                	adc    %al,(%rax)
  40036a:	00 00                	add    %al,(%rax)
  40036c:	00 00                	add    %al,(%rax)
  40036e:	00 00                	add    %al,(%rax)
  400370:	75 1a                	jne    40038c <_init-0x3c>
  400372:	69 09 00 00 02 00    	imul   $0x20000,(%rcx),%ecx
  400378:	31 00                	xor    %eax,(%rax)
  40037a:	00 00                	add    %al,(%rax)
  40037c:	00 00                	add    %al,(%rax)
	...

Desensamblado de la sección .rela.dyn:

0000000000400380 <.rela.dyn>:
  400380:	f8                   	clc    
  400381:	0f 60 00             	punpcklbw (%rax),%mm0
  400384:	00 00                	add    %al,(%rax)
  400386:	00 00                	add    %al,(%rax)
  400388:	06                   	(bad)  
  400389:	00 00                	add    %al,(%rax)
  40038b:	00 03                	add    %al,(%rbx)
	...

Desensamblado de la sección .rela.plt:

0000000000400398 <.rela.plt>:
  400398:	18 10                	sbb    %dl,(%rax)
  40039a:	60                   	(bad)  
  40039b:	00 00                	add    %al,(%rax)
  40039d:	00 00                	add    %al,(%rax)
  40039f:	00 07                	add    %al,(%rdi)
  4003a1:	00 00                	add    %al,(%rax)
  4003a3:	00 01                	add    %al,(%rcx)
	...
  4003ad:	00 00                	add    %al,(%rax)
  4003af:	00 20                	add    %ah,(%rax)
  4003b1:	10 60 00             	adc    %ah,0x0(%rax)
  4003b4:	00 00                	add    %al,(%rax)
  4003b6:	00 00                	add    %al,(%rax)
  4003b8:	07                   	(bad)  
  4003b9:	00 00                	add    %al,(%rax)
  4003bb:	00 02                	add    %al,(%rdx)
	...

Desensamblado de la sección .init:

00000000004003c8 <_init>:
  4003c8:	48 83 ec 08          	sub    $0x8,%rsp
  4003cc:	48 8b 05 25 0c 20 00 	mov    0x200c25(%rip),%rax        # 600ff8 <_DYNAMIC+0x1d0>
  4003d3:	48 85 c0             	test   %rax,%rax
  4003d6:	74 05                	je     4003dd <_init+0x15>
  4003d8:	e8 43 00 00 00       	callq  400420 <__libc_start_main@plt+0x10>
  4003dd:	48 83 c4 08          	add    $0x8,%rsp
  4003e1:	c3                   	retq   

Desensamblado de la sección .plt:

00000000004003f0 <puts@plt-0x10>:
  4003f0:	ff 35 12 0c 20 00    	pushq  0x200c12(%rip)        # 601008 <_GLOBAL_OFFSET_TABLE_+0x8>
  4003f6:	ff 25 14 0c 20 00    	jmpq   *0x200c14(%rip)        # 601010 <_GLOBAL_OFFSET_TABLE_+0x10>
  4003fc:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400400 <puts@plt>:
  400400:	ff 25 12 0c 20 00    	jmpq   *0x200c12(%rip)        # 601018 <_GLOBAL_OFFSET_TABLE_+0x18>
  400406:	68 00 00 00 00       	pushq  $0x0
  40040b:	e9 e0 ff ff ff       	jmpq   4003f0 <_init+0x28>

0000000000400410 <__libc_start_main@plt>:
  400410:	ff 25 0a 0c 20 00    	jmpq   *0x200c0a(%rip)        # 601020 <_GLOBAL_OFFSET_TABLE_+0x20>
  400416:	68 01 00 00 00       	pushq  $0x1
  40041b:	e9 d0 ff ff ff       	jmpq   4003f0 <_init+0x28>

Desensamblado de la sección .plt.got:

0000000000400420 <.plt.got>:
  400420:	ff 25 d2 0b 20 00    	jmpq   *0x200bd2(%rip)        # 600ff8 <_DYNAMIC+0x1d0>
  400426:	66 90                	xchg   %ax,%ax

Desensamblado de la sección .text:

0000000000400430 <_start>:
  400430:	31 ed                	xor    %ebp,%ebp
  400432:	49 89 d1             	mov    %rdx,%r9
  400435:	5e                   	pop    %rsi
  400436:	48 89 e2             	mov    %rsp,%rdx
  400439:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  40043d:	50                   	push   %rax
  40043e:	54                   	push   %rsp
  40043f:	49 c7 c0 b0 05 40 00 	mov    $0x4005b0,%r8
  400446:	48 c7 c1 40 05 40 00 	mov    $0x400540,%rcx
  40044d:	48 c7 c7 26 05 40 00 	mov    $0x400526,%rdi
  400454:	e8 b7 ff ff ff       	callq  400410 <__libc_start_main@plt>
  400459:	f4                   	hlt    
  40045a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

0000000000400460 <deregister_tm_clones>:
  400460:	b8 3f 10 60 00       	mov    $0x60103f,%eax
  400465:	55                   	push   %rbp
  400466:	48 2d 38 10 60 00    	sub    $0x601038,%rax
  40046c:	48 83 f8 0e          	cmp    $0xe,%rax
  400470:	48 89 e5             	mov    %rsp,%rbp
  400473:	76 1b                	jbe    400490 <deregister_tm_clones+0x30>
  400475:	b8 00 00 00 00       	mov    $0x0,%eax
  40047a:	48 85 c0             	test   %rax,%rax
  40047d:	74 11                	je     400490 <deregister_tm_clones+0x30>
  40047f:	5d                   	pop    %rbp
  400480:	bf 38 10 60 00       	mov    $0x601038,%edi
  400485:	ff e0                	jmpq   *%rax
  400487:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
  40048e:	00 00 
  400490:	5d                   	pop    %rbp
  400491:	c3                   	retq   
  400492:	0f 1f 40 00          	nopl   0x0(%rax)
  400496:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  40049d:	00 00 00 

00000000004004a0 <register_tm_clones>:
  4004a0:	be 38 10 60 00       	mov    $0x601038,%esi
  4004a5:	55                   	push   %rbp
  4004a6:	48 81 ee 38 10 60 00 	sub    $0x601038,%rsi
  4004ad:	48 c1 fe 03          	sar    $0x3,%rsi
  4004b1:	48 89 e5             	mov    %rsp,%rbp
  4004b4:	48 89 f0             	mov    %rsi,%rax
  4004b7:	48 c1 e8 3f          	shr    $0x3f,%rax
  4004bb:	48 01 c6             	add    %rax,%rsi
  4004be:	48 d1 fe             	sar    %rsi
  4004c1:	74 15                	je     4004d8 <register_tm_clones+0x38>
  4004c3:	b8 00 00 00 00       	mov    $0x0,%eax
  4004c8:	48 85 c0             	test   %rax,%rax
  4004cb:	74 0b                	je     4004d8 <register_tm_clones+0x38>
  4004cd:	5d                   	pop    %rbp
  4004ce:	bf 38 10 60 00       	mov    $0x601038,%edi
  4004d3:	ff e0                	jmpq   *%rax
  4004d5:	0f 1f 00             	nopl   (%rax)
  4004d8:	5d                   	pop    %rbp
  4004d9:	c3                   	retq   
  4004da:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

00000000004004e0 <__do_global_dtors_aux>:
  4004e0:	80 3d 51 0b 20 00 00 	cmpb   $0x0,0x200b51(%rip)        # 601038 <__TMC_END__>
  4004e7:	75 11                	jne    4004fa <__do_global_dtors_aux+0x1a>
  4004e9:	55                   	push   %rbp
  4004ea:	48 89 e5             	mov    %rsp,%rbp
  4004ed:	e8 6e ff ff ff       	callq  400460 <deregister_tm_clones>
  4004f2:	5d                   	pop    %rbp
  4004f3:	c6 05 3e 0b 20 00 01 	movb   $0x1,0x200b3e(%rip)        # 601038 <__TMC_END__>
  4004fa:	f3 c3                	repz retq 
  4004fc:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400500 <frame_dummy>:
  400500:	bf 20 0e 60 00       	mov    $0x600e20,%edi
  400505:	48 83 3f 00          	cmpq   $0x0,(%rdi)
  400509:	75 05                	jne    400510 <frame_dummy+0x10>
  40050b:	eb 93                	jmp    4004a0 <register_tm_clones>
  40050d:	0f 1f 00             	nopl   (%rax)
  400510:	b8 00 00 00 00       	mov    $0x0,%eax
  400515:	48 85 c0             	test   %rax,%rax
  400518:	74 f1                	je     40050b <frame_dummy+0xb>
  40051a:	55                   	push   %rbp
  40051b:	48 89 e5             	mov    %rsp,%rbp
  40051e:	ff d0                	callq  *%rax
  400520:	5d                   	pop    %rbp
  400521:	e9 7a ff ff ff       	jmpq   4004a0 <register_tm_clones>

0000000000400526 <main>:
  400526:	55                   	push   %rbp
  400527:	48 89 e5             	mov    %rsp,%rbp
  40052a:	bf c4 05 40 00       	mov    $0x4005c4,%edi
  40052f:	e8 cc fe ff ff       	callq  400400 <puts@plt>
  400534:	b8 00 00 00 00       	mov    $0x0,%eax
  400539:	5d                   	pop    %rbp
  40053a:	c3                   	retq   
  40053b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000400540 <__libc_csu_init>:
  400540:	41 57                	push   %r15
  400542:	41 56                	push   %r14
  400544:	41 89 ff             	mov    %edi,%r15d
  400547:	41 55                	push   %r13
  400549:	41 54                	push   %r12
  40054b:	4c 8d 25 be 08 20 00 	lea    0x2008be(%rip),%r12        # 600e10 <__frame_dummy_init_array_entry>
  400552:	55                   	push   %rbp
  400553:	48 8d 2d be 08 20 00 	lea    0x2008be(%rip),%rbp        # 600e18 <__init_array_end>
  40055a:	53                   	push   %rbx
  40055b:	49 89 f6             	mov    %rsi,%r14
  40055e:	49 89 d5             	mov    %rdx,%r13
  400561:	4c 29 e5             	sub    %r12,%rbp
  400564:	48 83 ec 08          	sub    $0x8,%rsp
  400568:	48 c1 fd 03          	sar    $0x3,%rbp
  40056c:	e8 57 fe ff ff       	callq  4003c8 <_init>
  400571:	48 85 ed             	test   %rbp,%rbp
  400574:	74 20                	je     400596 <__libc_csu_init+0x56>
  400576:	31 db                	xor    %ebx,%ebx
  400578:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
  40057f:	00 
  400580:	4c 89 ea             	mov    %r13,%rdx
  400583:	4c 89 f6             	mov    %r14,%rsi
  400586:	44 89 ff             	mov    %r15d,%edi
  400589:	41 ff 14 dc          	callq  *(%r12,%rbx,8)
  40058d:	48 83 c3 01          	add    $0x1,%rbx
  400591:	48 39 eb             	cmp    %rbp,%rbx
  400594:	75 ea                	jne    400580 <__libc_csu_init+0x40>
  400596:	48 83 c4 08          	add    $0x8,%rsp
  40059a:	5b                   	pop    %rbx
  40059b:	5d                   	pop    %rbp
  40059c:	41 5c                	pop    %r12
  40059e:	41 5d                	pop    %r13
  4005a0:	41 5e                	pop    %r14
  4005a2:	41 5f                	pop    %r15
  4005a4:	c3                   	retq   
  4005a5:	90                   	nop
  4005a6:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  4005ad:	00 00 00 

00000000004005b0 <__libc_csu_fini>:
  4005b0:	f3 c3                	repz retq 

Desensamblado de la sección .fini:

00000000004005b4 <_fini>:
  4005b4:	48 83 ec 08          	sub    $0x8,%rsp
  4005b8:	48 83 c4 08          	add    $0x8,%rsp
  4005bc:	c3                   	retq   

Desensamblado de la sección .rodata:

00000000004005c0 <_IO_stdin_used>:
  4005c0:	01 00                	add    %eax,(%rax)
  4005c2:	02 00                	add    (%rax),%al
  4005c4:	48 6f                	rex.W outsl %ds:(%rsi),(%dx)
  4005c6:	6c                   	insb   (%dx),%es:(%rdi)
  4005c7:	61                   	(bad)  
	...

Desensamblado de la sección .eh_frame_hdr:

00000000004005cc <__GNU_EH_FRAME_HDR>:
  4005cc:	01 1b                	add    %ebx,(%rbx)
  4005ce:	03 3b                	add    (%rbx),%edi
  4005d0:	30 00                	xor    %al,(%rax)
  4005d2:	00 00                	add    %al,(%rax)
  4005d4:	05 00 00 00 24       	add    $0x24000000,%eax
  4005d9:	fe                   	(bad)  
  4005da:	ff                   	(bad)  
  4005db:	ff                   	(bad)  
  4005dc:	7c 00                	jl     4005de <__GNU_EH_FRAME_HDR+0x12>
  4005de:	00 00                	add    %al,(%rax)
  4005e0:	64 fe                	fs (bad) 
  4005e2:	ff                   	(bad)  
  4005e3:	ff 4c 00 00          	decl   0x0(%rax,%rax,1)
  4005e7:	00 5a ff             	add    %bl,-0x1(%rdx)
  4005ea:	ff                   	(bad)  
  4005eb:	ff a4 00 00 00 74 ff 	jmpq   *-0x8c0000(%rax,%rax,1)
  4005f2:	ff                   	(bad)  
  4005f3:	ff c4                	inc    %esp
  4005f5:	00 00                	add    %al,(%rax)
  4005f7:	00 e4                	add    %ah,%ah
  4005f9:	ff                   	(bad)  
  4005fa:	ff                   	(bad)  
  4005fb:	ff 0c 01             	decl   (%rcx,%rax,1)
	...

Desensamblado de la sección .eh_frame:

0000000000400600 <__FRAME_END__-0xf0>:
  400600:	14 00                	adc    $0x0,%al
  400602:	00 00                	add    %al,(%rax)
  400604:	00 00                	add    %al,(%rax)
  400606:	00 00                	add    %al,(%rax)
  400608:	01 7a 52             	add    %edi,0x52(%rdx)
  40060b:	00 01                	add    %al,(%rcx)
  40060d:	78 10                	js     40061f <__GNU_EH_FRAME_HDR+0x53>
  40060f:	01 1b                	add    %ebx,(%rbx)
  400611:	0c 07                	or     $0x7,%al
  400613:	08 90 01 07 10 14    	or     %dl,0x14100701(%rax)
  400619:	00 00                	add    %al,(%rax)
  40061b:	00 1c 00             	add    %bl,(%rax,%rax,1)
  40061e:	00 00                	add    %al,(%rax)
  400620:	10 fe                	adc    %bh,%dh
  400622:	ff                   	(bad)  
  400623:	ff 2a                	ljmp   *(%rdx)
	...
  40062d:	00 00                	add    %al,(%rax)
  40062f:	00 14 00             	add    %dl,(%rax,%rax,1)
  400632:	00 00                	add    %al,(%rax)
  400634:	00 00                	add    %al,(%rax)
  400636:	00 00                	add    %al,(%rax)
  400638:	01 7a 52             	add    %edi,0x52(%rdx)
  40063b:	00 01                	add    %al,(%rcx)
  40063d:	78 10                	js     40064f <__GNU_EH_FRAME_HDR+0x83>
  40063f:	01 1b                	add    %ebx,(%rbx)
  400641:	0c 07                	or     $0x7,%al
  400643:	08 90 01 00 00 24    	or     %dl,0x24000001(%rax)
  400649:	00 00                	add    %al,(%rax)
  40064b:	00 1c 00             	add    %bl,(%rax,%rax,1)
  40064e:	00 00                	add    %al,(%rax)
  400650:	a0 fd ff ff 30 00 00 	movabs 0x30fffffd,%al
  400657:	00 00 
  400659:	0e                   	(bad)  
  40065a:	10 46 0e             	adc    %al,0xe(%rsi)
  40065d:	18 4a 0f             	sbb    %cl,0xf(%rdx)
  400660:	0b 77 08             	or     0x8(%rdi),%esi
  400663:	80 00 3f             	addb   $0x3f,(%rax)
  400666:	1a 3b                	sbb    (%rbx),%bh
  400668:	2a 33                	sub    (%rbx),%dh
  40066a:	24 22                	and    $0x22,%al
  40066c:	00 00                	add    %al,(%rax)
  40066e:	00 00                	add    %al,(%rax)
  400670:	1c 00                	sbb    $0x0,%al
  400672:	00 00                	add    %al,(%rax)
  400674:	44 00 00             	add    %r8b,(%rax)
  400677:	00 ae fe ff ff 15    	add    %ch,0x15fffffe(%rsi)
  40067d:	00 00                	add    %al,(%rax)
  40067f:	00 00                	add    %al,(%rax)
  400681:	41 0e                	rex.B (bad) 
  400683:	10 86 02 43 0d 06    	adc    %al,0x60d4302(%rsi)
  400689:	50                   	push   %rax
  40068a:	0c 07                	or     $0x7,%al
  40068c:	08 00                	or     %al,(%rax)
  40068e:	00 00                	add    %al,(%rax)
  400690:	44 00 00             	add    %r8b,(%rax)
  400693:	00 64 00 00          	add    %ah,0x0(%rax,%rax,1)
  400697:	00 a8 fe ff ff 65    	add    %ch,0x65fffffe(%rax)
  40069d:	00 00                	add    %al,(%rax)
  40069f:	00 00                	add    %al,(%rax)
  4006a1:	42 0e                	rex.X (bad) 
  4006a3:	10 8f 02 42 0e 18    	adc    %cl,0x180e4202(%rdi)
  4006a9:	8e 03                	mov    (%rbx),%es
  4006ab:	45 0e                	rex.RB (bad) 
  4006ad:	20 8d 04 42 0e 28    	and    %cl,0x280e4204(%rbp)
  4006b3:	8c 05 48 0e 30 86    	mov    %es,-0x79cff1b8(%rip)        # ffffffff86701501 <_end+0xffffffff861004c1>
  4006b9:	06                   	(bad)  
  4006ba:	48 0e                	rex.W (bad) 
  4006bc:	38 83 07 4d 0e 40    	cmp    %al,0x400e4d07(%rbx)
  4006c2:	72 0e                	jb     4006d2 <__GNU_EH_FRAME_HDR+0x106>
  4006c4:	38 41 0e             	cmp    %al,0xe(%rcx)
  4006c7:	30 41 0e             	xor    %al,0xe(%rcx)
  4006ca:	28 42 0e             	sub    %al,0xe(%rdx)
  4006cd:	20 42 0e             	and    %al,0xe(%rdx)
  4006d0:	18 42 0e             	sbb    %al,0xe(%rdx)
  4006d3:	10 42 0e             	adc    %al,0xe(%rdx)
  4006d6:	08 00                	or     %al,(%rax)
  4006d8:	14 00                	adc    $0x0,%al
  4006da:	00 00                	add    %al,(%rax)
  4006dc:	ac                   	lods   %ds:(%rsi),%al
  4006dd:	00 00                	add    %al,(%rax)
  4006df:	00 d0                	add    %dl,%al
  4006e1:	fe                   	(bad)  
  4006e2:	ff                   	(bad)  
  4006e3:	ff 02                	incl   (%rdx)
	...

00000000004006f0 <__FRAME_END__>:
  4006f0:	00 00                	add    %al,(%rax)
	...

Desensamblado de la sección .init_array:

0000000000600e10 <__frame_dummy_init_array_entry>:
  600e10:	00 05 40 00 00 00    	add    %al,0x40(%rip)        # 600e56 <_DYNAMIC+0x2e>
	...

Desensamblado de la sección .fini_array:

0000000000600e18 <__do_global_dtors_aux_fini_array_entry>:
  600e18:	e0 04                	loopne 600e1e <__do_global_dtors_aux_fini_array_entry+0x6>
  600e1a:	40 00 00             	add    %al,(%rax)
  600e1d:	00 00                	add    %al,(%rax)
	...

Desensamblado de la sección .jcr:

0000000000600e20 <__JCR_END__>:
	...

Desensamblado de la sección .dynamic:

0000000000600e28 <_DYNAMIC>:
  600e28:	01 00                	add    %eax,(%rax)
  600e2a:	00 00                	add    %al,(%rax)
  600e2c:	00 00                	add    %al,(%rax)
  600e2e:	00 00                	add    %al,(%rax)
  600e30:	01 00                	add    %eax,(%rax)
  600e32:	00 00                	add    %al,(%rax)
  600e34:	00 00                	add    %al,(%rax)
  600e36:	00 00                	add    %al,(%rax)
  600e38:	0c 00                	or     $0x0,%al
  600e3a:	00 00                	add    %al,(%rax)
  600e3c:	00 00                	add    %al,(%rax)
  600e3e:	00 00                	add    %al,(%rax)
  600e40:	c8 03 40 00          	enterq $0x4003,$0x0
  600e44:	00 00                	add    %al,(%rax)
  600e46:	00 00                	add    %al,(%rax)
  600e48:	0d 00 00 00 00       	or     $0x0,%eax
  600e4d:	00 00                	add    %al,(%rax)
  600e4f:	00 b4 05 40 00 00 00 	add    %dh,0x40(%rbp,%rax,1)
  600e56:	00 00                	add    %al,(%rax)
  600e58:	19 00                	sbb    %eax,(%rax)
  600e5a:	00 00                	add    %al,(%rax)
  600e5c:	00 00                	add    %al,(%rax)
  600e5e:	00 00                	add    %al,(%rax)
  600e60:	10 0e                	adc    %cl,(%rsi)
  600e62:	60                   	(bad)  
  600e63:	00 00                	add    %al,(%rax)
  600e65:	00 00                	add    %al,(%rax)
  600e67:	00 1b                	add    %bl,(%rbx)
  600e69:	00 00                	add    %al,(%rax)
  600e6b:	00 00                	add    %al,(%rax)
  600e6d:	00 00                	add    %al,(%rax)
  600e6f:	00 08                	add    %cl,(%rax)
  600e71:	00 00                	add    %al,(%rax)
  600e73:	00 00                	add    %al,(%rax)
  600e75:	00 00                	add    %al,(%rax)
  600e77:	00 1a                	add    %bl,(%rdx)
  600e79:	00 00                	add    %al,(%rax)
  600e7b:	00 00                	add    %al,(%rax)
  600e7d:	00 00                	add    %al,(%rax)
  600e7f:	00 18                	add    %bl,(%rax)
  600e81:	0e                   	(bad)  
  600e82:	60                   	(bad)  
  600e83:	00 00                	add    %al,(%rax)
  600e85:	00 00                	add    %al,(%rax)
  600e87:	00 1c 00             	add    %bl,(%rax,%rax,1)
  600e8a:	00 00                	add    %al,(%rax)
  600e8c:	00 00                	add    %al,(%rax)
  600e8e:	00 00                	add    %al,(%rax)
  600e90:	08 00                	or     %al,(%rax)
  600e92:	00 00                	add    %al,(%rax)
  600e94:	00 00                	add    %al,(%rax)
  600e96:	00 00                	add    %al,(%rax)
  600e98:	f5                   	cmc    
  600e99:	fe                   	(bad)  
  600e9a:	ff 6f 00             	ljmp   *0x0(%rdi)
  600e9d:	00 00                	add    %al,(%rax)
  600e9f:	00 98 02 40 00 00    	add    %bl,0x4002(%rax)
  600ea5:	00 00                	add    %al,(%rax)
  600ea7:	00 05 00 00 00 00    	add    %al,0x0(%rip)        # 600ead <_DYNAMIC+0x85>
  600ead:	00 00                	add    %al,(%rax)
  600eaf:	00 18                	add    %bl,(%rax)
  600eb1:	03 40 00             	add    0x0(%rax),%eax
  600eb4:	00 00                	add    %al,(%rax)
  600eb6:	00 00                	add    %al,(%rax)
  600eb8:	06                   	(bad)  
  600eb9:	00 00                	add    %al,(%rax)
  600ebb:	00 00                	add    %al,(%rax)
  600ebd:	00 00                	add    %al,(%rax)
  600ebf:	00 b8 02 40 00 00    	add    %bh,0x4002(%rax)
  600ec5:	00 00                	add    %al,(%rax)
  600ec7:	00 0a                	add    %cl,(%rdx)
  600ec9:	00 00                	add    %al,(%rax)
  600ecb:	00 00                	add    %al,(%rax)
  600ecd:	00 00                	add    %al,(%rax)
  600ecf:	00 3d 00 00 00 00    	add    %bh,0x0(%rip)        # 600ed5 <_DYNAMIC+0xad>
  600ed5:	00 00                	add    %al,(%rax)
  600ed7:	00 0b                	add    %cl,(%rbx)
  600ed9:	00 00                	add    %al,(%rax)
  600edb:	00 00                	add    %al,(%rax)
  600edd:	00 00                	add    %al,(%rax)
  600edf:	00 18                	add    %bl,(%rax)
  600ee1:	00 00                	add    %al,(%rax)
  600ee3:	00 00                	add    %al,(%rax)
  600ee5:	00 00                	add    %al,(%rax)
  600ee7:	00 15 00 00 00 00    	add    %dl,0x0(%rip)        # 600eed <_DYNAMIC+0xc5>
	...
  600ef5:	00 00                	add    %al,(%rax)
  600ef7:	00 03                	add    %al,(%rbx)
	...
  600f01:	10 60 00             	adc    %ah,0x0(%rax)
  600f04:	00 00                	add    %al,(%rax)
  600f06:	00 00                	add    %al,(%rax)
  600f08:	02 00                	add    (%rax),%al
  600f0a:	00 00                	add    %al,(%rax)
  600f0c:	00 00                	add    %al,(%rax)
  600f0e:	00 00                	add    %al,(%rax)
  600f10:	30 00                	xor    %al,(%rax)
  600f12:	00 00                	add    %al,(%rax)
  600f14:	00 00                	add    %al,(%rax)
  600f16:	00 00                	add    %al,(%rax)
  600f18:	14 00                	adc    $0x0,%al
  600f1a:	00 00                	add    %al,(%rax)
  600f1c:	00 00                	add    %al,(%rax)
  600f1e:	00 00                	add    %al,(%rax)
  600f20:	07                   	(bad)  
  600f21:	00 00                	add    %al,(%rax)
  600f23:	00 00                	add    %al,(%rax)
  600f25:	00 00                	add    %al,(%rax)
  600f27:	00 17                	add    %dl,(%rdi)
  600f29:	00 00                	add    %al,(%rax)
  600f2b:	00 00                	add    %al,(%rax)
  600f2d:	00 00                	add    %al,(%rax)
  600f2f:	00 98 03 40 00 00    	add    %bl,0x4003(%rax)
  600f35:	00 00                	add    %al,(%rax)
  600f37:	00 07                	add    %al,(%rdi)
  600f39:	00 00                	add    %al,(%rax)
  600f3b:	00 00                	add    %al,(%rax)
  600f3d:	00 00                	add    %al,(%rax)
  600f3f:	00 80 03 40 00 00    	add    %al,0x4003(%rax)
  600f45:	00 00                	add    %al,(%rax)
  600f47:	00 08                	add    %cl,(%rax)
  600f49:	00 00                	add    %al,(%rax)
  600f4b:	00 00                	add    %al,(%rax)
  600f4d:	00 00                	add    %al,(%rax)
  600f4f:	00 18                	add    %bl,(%rax)
  600f51:	00 00                	add    %al,(%rax)
  600f53:	00 00                	add    %al,(%rax)
  600f55:	00 00                	add    %al,(%rax)
  600f57:	00 09                	add    %cl,(%rcx)
  600f59:	00 00                	add    %al,(%rax)
  600f5b:	00 00                	add    %al,(%rax)
  600f5d:	00 00                	add    %al,(%rax)
  600f5f:	00 18                	add    %bl,(%rax)
  600f61:	00 00                	add    %al,(%rax)
  600f63:	00 00                	add    %al,(%rax)
  600f65:	00 00                	add    %al,(%rax)
  600f67:	00 fe                	add    %bh,%dh
  600f69:	ff                   	(bad)  
  600f6a:	ff 6f 00             	ljmp   *0x0(%rdi)
  600f6d:	00 00                	add    %al,(%rax)
  600f6f:	00 60 03             	add    %ah,0x3(%rax)
  600f72:	40 00 00             	add    %al,(%rax)
  600f75:	00 00                	add    %al,(%rax)
  600f77:	00 ff                	add    %bh,%bh
  600f79:	ff                   	(bad)  
  600f7a:	ff 6f 00             	ljmp   *0x0(%rdi)
  600f7d:	00 00                	add    %al,(%rax)
  600f7f:	00 01                	add    %al,(%rcx)
  600f81:	00 00                	add    %al,(%rax)
  600f83:	00 00                	add    %al,(%rax)
  600f85:	00 00                	add    %al,(%rax)
  600f87:	00 f0                	add    %dh,%al
  600f89:	ff                   	(bad)  
  600f8a:	ff 6f 00             	ljmp   *0x0(%rdi)
  600f8d:	00 00                	add    %al,(%rax)
  600f8f:	00 56 03             	add    %dl,0x3(%rsi)
  600f92:	40 00 00             	add    %al,(%rax)
	...

Desensamblado de la sección .got:

0000000000600ff8 <.got>:
	...

Desensamblado de la sección .got.plt:

0000000000601000 <_GLOBAL_OFFSET_TABLE_>:
  601000:	28 0e                	sub    %cl,(%rsi)
  601002:	60                   	(bad)  
	...
  601017:	00 06                	add    %al,(%rsi)
  601019:	04 40                	add    $0x40,%al
  60101b:	00 00                	add    %al,(%rax)
  60101d:	00 00                	add    %al,(%rax)
  60101f:	00 16                	add    %dl,(%rsi)
  601021:	04 40                	add    $0x40,%al
  601023:	00 00                	add    %al,(%rax)
  601025:	00 00                	add    %al,(%rax)
	...

Desensamblado de la sección .data:

0000000000601028 <__data_start>:
	...

0000000000601030 <__dso_handle>:
	...

Desensamblado de la sección .bss:

0000000000601038 <__bss_start>:
	...

Desensamblado de la sección .comment:

0000000000000000 <.comment>:
   0:	47                   	rex.RXB
   1:	43                   	rex.XB
   2:	43 3a 20             	rex.XB cmp (%r8),%spl
   5:	28 55 62             	sub    %dl,0x62(%rbp)
   8:	75 6e                	jne    78 <_init-0x400350>
   a:	74 75                	je     81 <_init-0x400347>
   c:	20 35 2e 34 2e 30    	and    %dh,0x302e342e(%rip)        # 302e3440 <_end+0x2fce2400>
  12:	2d 36 75 62 75       	sub    $0x75627536,%eax
  17:	6e                   	outsb  %ds:(%rsi),(%dx)
  18:	74 75                	je     8f <_init-0x400339>
  1a:	31 7e 31             	xor    %edi,0x31(%rsi)
  1d:	36 2e 30 34 2e       	ss xor %dh,%cs:(%rsi,%rbp,1)
  22:	31 31                	xor    %esi,(%rcx)
  24:	29 20                	sub    %esp,(%rax)
  26:	35 2e 34 2e 30       	xor    $0x302e342e,%eax
  2b:	20 32                	and    %dh,(%rdx)
  2d:	30 31                	xor    %dh,(%rcx)
  2f:	36 30 36             	xor    %dh,%ss:(%rsi)
  32:	30 39                	xor    %bh,(%rcx)
	...

Con hexdump puedes obtener algo similar:

hexdump -C hola

Con el resultado más aproximado de lo que estaría cargado en memoria… (¡Repito! No quiero que entiendas todo esta cantidad de datos, solo que comprendas cómo funciona una computadora):

00000000  7f 45 4c 46 02 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|
00000010  02 00 3e 00 01 00 00 00  30 04 40 00 00 00 00 00  |..>.....0.@.....|
00000020  40 00 00 00 00 00 00 00  d8 19 00 00 00 00 00 00  |@...............|
00000030  00 00 00 00 40 00 38 00  09 00 40 00 1f 00 1c 00  |....@.8...@.....|
00000040  06 00 00 00 05 00 00 00  40 00 00 00 00 00 00 00  |........@.......|
00000050  40 00 40 00 00 00 00 00  40 00 40 00 00 00 00 00  |@.@.....@.@.....|
00000060  f8 01 00 00 00 00 00 00  f8 01 00 00 00 00 00 00  |................|
00000070  08 00 00 00 00 00 00 00  03 00 00 00 04 00 00 00  |................|
00000080  38 02 00 00 00 00 00 00  38 02 40 00 00 00 00 00  |8.......8.@.....|
00000090  38 02 40 00 00 00 00 00  1c 00 00 00 00 00 00 00  |8.@.............|
000000a0  1c 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00  |................|
000000b0  01 00 00 00 05 00 00 00  00 00 00 00 00 00 00 00  |................|
000000c0  00 00 40 00 00 00 00 00  00 00 40 00 00 00 00 00  |..@.......@.....|
000000d0  f4 06 00 00 00 00 00 00  f4 06 00 00 00 00 00 00  |................|
000000e0  00 00 20 00 00 00 00 00  01 00 00 00 06 00 00 00  |.. .............|
000000f0  10 0e 00 00 00 00 00 00  10 0e 60 00 00 00 00 00  |..........`.....|
00000100  10 0e 60 00 00 00 00 00  28 02 00 00 00 00 00 00  |..`.....(.......|
00000110  30 02 00 00 00 00 00 00  00 00 20 00 00 00 00 00  |0......... .....|
00000120  02 00 00 00 06 00 00 00  28 0e 00 00 00 00 00 00  |........(.......|
00000130  28 0e 60 00 00 00 00 00  28 0e 60 00 00 00 00 00  |(.`.....(.`.....|
00000140  d0 01 00 00 00 00 00 00  d0 01 00 00 00 00 00 00  |................|
00000150  08 00 00 00 00 00 00 00  04 00 00 00 04 00 00 00  |................|
00000160  54 02 00 00 00 00 00 00  54 02 40 00 00 00 00 00  |T.......T.@.....|
00000170  54 02 40 00 00 00 00 00  44 00 00 00 00 00 00 00  |T.@.....D.......|
00000180  44 00 00 00 00 00 00 00  04 00 00 00 00 00 00 00  |D...............|
00000190  50 e5 74 64 04 00 00 00  cc 05 00 00 00 00 00 00  |P.td............|
000001a0  cc 05 40 00 00 00 00 00  cc 05 40 00 00 00 00 00  |..@.......@.....|
000001b0  34 00 00 00 00 00 00 00  34 00 00 00 00 00 00 00  |4.......4.......|
000001c0  04 00 00 00 00 00 00 00  51 e5 74 64 06 00 00 00  |........Q.td....|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  10 00 00 00 00 00 00 00  |................|
00000200  52 e5 74 64 04 00 00 00  10 0e 00 00 00 00 00 00  |R.td............|
00000210  10 0e 60 00 00 00 00 00  10 0e 60 00 00 00 00 00  |..`.......`.....|
00000220  f0 01 00 00 00 00 00 00  f0 01 00 00 00 00 00 00  |................|
00000230  01 00 00 00 00 00 00 00  2f 6c 69 62 36 34 2f 6c  |......../lib64/l|
00000240  64 2d 6c 69 6e 75 78 2d  78 38 36 2d 36 34 2e 73  |d-linux-x86-64.s|
00000250  6f 2e 32 00 04 00 00 00  10 00 00 00 01 00 00 00  |o.2.............|
00000260  47 4e 55 00 00 00 00 00  02 00 00 00 06 00 00 00  |GNU.............|
00000270  20 00 00 00 04 00 00 00  14 00 00 00 03 00 00 00  | ...............|
00000280  47 4e 55 00 0f 61 d8 18  12 22 19 de 88 98 7d 23  |GNU..a..."....}#|
00000290  64 0b 1e 36 4b 86 fe e5  01 00 00 00 01 00 00 00  |d..6K...........|
000002a0  01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000002b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000002d0  0b 00 00 00 12 00 00 00  00 00 00 00 00 00 00 00  |................|
000002e0  00 00 00 00 00 00 00 00  10 00 00 00 12 00 00 00  |................|
000002f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000300  22 00 00 00 20 00 00 00  00 00 00 00 00 00 00 00  |"... ...........|
00000310  00 00 00 00 00 00 00 00  00 6c 69 62 63 2e 73 6f  |.........libc.so|
00000320  2e 36 00 70 75 74 73 00  5f 5f 6c 69 62 63 5f 73  |.6.puts.__libc_s|
00000330  74 61 72 74 5f 6d 61 69  6e 00 5f 5f 67 6d 6f 6e  |tart_main.__gmon|
00000340  5f 73 74 61 72 74 5f 5f  00 47 4c 49 42 43 5f 32  |_start__.GLIBC_2|
00000350  2e 32 2e 35 00 00 00 00  02 00 02 00 00 00 00 00  |.2.5............|
00000360  01 00 01 00 01 00 00 00  10 00 00 00 00 00 00 00  |................|
00000370  75 1a 69 09 00 00 02 00  31 00 00 00 00 00 00 00  |u.i.....1.......|
00000380  f8 0f 60 00 00 00 00 00  06 00 00 00 03 00 00 00  |..`.............|
00000390  00 00 00 00 00 00 00 00  18 10 60 00 00 00 00 00  |..........`.....|
000003a0  07 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  |................|
000003b0  20 10 60 00 00 00 00 00  07 00 00 00 02 00 00 00  | .`.............|
000003c0  00 00 00 00 00 00 00 00  48 83 ec 08 48 8b 05 25  |........H...H..%|
000003d0  0c 20 00 48 85 c0 74 05  e8 43 00 00 00 48 83 c4  |. .H..t..C...H..|
000003e0  08 c3 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000003f0  ff 35 12 0c 20 00 ff 25  14 0c 20 00 0f 1f 40 00  |.5.. ..%.. ...@.|
00000400  ff 25 12 0c 20 00 68 00  00 00 00 e9 e0 ff ff ff  |.%.. .h.........|
00000410  ff 25 0a 0c 20 00 68 01  00 00 00 e9 d0 ff ff ff  |.%.. .h.........|
00000420  ff 25 d2 0b 20 00 66 90  00 00 00 00 00 00 00 00  |.%.. .f.........|
00000430  31 ed 49 89 d1 5e 48 89  e2 48 83 e4 f0 50 54 49  |1.I..^H..H...PTI|
00000440  c7 c0 b0 05 40 00 48 c7  c1 40 05 40 00 48 c7 c7  |....@.H..@.@.H..|
00000450  26 05 40 00 e8 b7 ff ff  ff f4 66 0f 1f 44 00 00  |&.@.......f..D..|
00000460  b8 3f 10 60 00 55 48 2d  38 10 60 00 48 83 f8 0e  |.?.`.UH-8.`.H...|
00000470  48 89 e5 76 1b b8 00 00  00 00 48 85 c0 74 11 5d  |H..v......H..t.]|
00000480  bf 38 10 60 00 ff e0 66  0f 1f 84 00 00 00 00 00  |.8.`...f........|
00000490  5d c3 0f 1f 40 00 66 2e  0f 1f 84 00 00 00 00 00  |]...@.f.........|
000004a0  be 38 10 60 00 55 48 81  ee 38 10 60 00 48 c1 fe  |.8.`.UH..8.`.H..|
000004b0  03 48 89 e5 48 89 f0 48  c1 e8 3f 48 01 c6 48 d1  |.H..H..H..?H..H.|
000004c0  fe 74 15 b8 00 00 00 00  48 85 c0 74 0b 5d bf 38  |.t......H..t.].8|
000004d0  10 60 00 ff e0 0f 1f 00  5d c3 66 0f 1f 44 00 00  |.`......].f..D..|
000004e0  80 3d 51 0b 20 00 00 75  11 55 48 89 e5 e8 6e ff  |.=Q. ..u.UH...n.|
000004f0  ff ff 5d c6 05 3e 0b 20  00 01 f3 c3 0f 1f 40 00  |..]..>. ......@.|
00000500  bf 20 0e 60 00 48 83 3f  00 75 05 eb 93 0f 1f 00  |. .`.H.?.u......|
00000510  b8 00 00 00 00 48 85 c0  74 f1 55 48 89 e5 ff d0  |.....H..t.UH....|
00000520  5d e9 7a ff ff ff 55 48  89 e5 bf c4 05 40 00 e8  |].z...UH.....@..|
00000530  cc fe ff ff b8 00 00 00  00 5d c3 0f 1f 44 00 00  |.........]...D..|
00000540  41 57 41 56 41 89 ff 41  55 41 54 4c 8d 25 be 08  |AWAVA..AUATL.%..|
00000550  20 00 55 48 8d 2d be 08  20 00 53 49 89 f6 49 89  | .UH.-.. .SI..I.|
00000560  d5 4c 29 e5 48 83 ec 08  48 c1 fd 03 e8 57 fe ff  |.L).H...H....W..|
00000570  ff 48 85 ed 74 20 31 db  0f 1f 84 00 00 00 00 00  |.H..t 1.........|
00000580  4c 89 ea 4c 89 f6 44 89  ff 41 ff 14 dc 48 83 c3  |L..L..D..A...H..|
00000590  01 48 39 eb 75 ea 48 83  c4 08 5b 5d 41 5c 41 5d  |.H9.u.H...[]A\A]|
000005a0  41 5e 41 5f c3 90 66 2e  0f 1f 84 00 00 00 00 00  |A^A_..f.........|
000005b0  f3 c3 00 00 48 83 ec 08  48 83 c4 08 c3 00 00 00  |....H...H.......|
000005c0  01 00 02 00 48 6f 6c 61  00 00 00 00 01 1b 03 3b  |....Hola.......;|
000005d0  30 00 00 00 05 00 00 00  24 fe ff ff 7c 00 00 00  |0.......$...|...|
000005e0  64 fe ff ff 4c 00 00 00  5a ff ff ff a4 00 00 00  |d...L...Z.......|
000005f0  74 ff ff ff c4 00 00 00  e4 ff ff ff 0c 01 00 00  |t...............|
00000600  14 00 00 00 00 00 00 00  01 7a 52 00 01 78 10 01  |.........zR..x..|
00000610  1b 0c 07 08 90 01 07 10  14 00 00 00 1c 00 00 00  |................|
00000620  10 fe ff ff 2a 00 00 00  00 00 00 00 00 00 00 00  |....*...........|
00000630  14 00 00 00 00 00 00 00  01 7a 52 00 01 78 10 01  |.........zR..x..|
00000640  1b 0c 07 08 90 01 00 00  24 00 00 00 1c 00 00 00  |........$.......|
00000650  a0 fd ff ff 30 00 00 00  00 0e 10 46 0e 18 4a 0f  |....0......F..J.|
00000660  0b 77 08 80 00 3f 1a 3b  2a 33 24 22 00 00 00 00  |.w...?.;*3$"....|
00000670  1c 00 00 00 44 00 00 00  ae fe ff ff 15 00 00 00  |....D...........|
00000680  00 41 0e 10 86 02 43 0d  06 50 0c 07 08 00 00 00  |.A....C..P......|
00000690  44 00 00 00 64 00 00 00  a8 fe ff ff 65 00 00 00  |D...d.......e...|
000006a0  00 42 0e 10 8f 02 42 0e  18 8e 03 45 0e 20 8d 04  |.B....B....E. ..|
000006b0  42 0e 28 8c 05 48 0e 30  86 06 48 0e 38 83 07 4d  |B.(..H.0..H.8..M|
000006c0  0e 40 72 0e 38 41 0e 30  41 0e 28 42 0e 20 42 0e  |.@r.8A.0A.(B. B.|
000006d0  18 42 0e 10 42 0e 08 00  14 00 00 00 ac 00 00 00  |.B..B...........|
000006e0  d0 fe ff ff 02 00 00 00  00 00 00 00 00 00 00 00  |................|
000006f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000e10  00 05 40 00 00 00 00 00  e0 04 40 00 00 00 00 00  |..@.......@.....|
00000e20  00 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00  |................|
00000e30  01 00 00 00 00 00 00 00  0c 00 00 00 00 00 00 00  |................|
00000e40  c8 03 40 00 00 00 00 00  0d 00 00 00 00 00 00 00  |..@.............|
00000e50  b4 05 40 00 00 00 00 00  19 00 00 00 00 00 00 00  |..@.............|
00000e60  10 0e 60 00 00 00 00 00  1b 00 00 00 00 00 00 00  |..`.............|
00000e70  08 00 00 00 00 00 00 00  1a 00 00 00 00 00 00 00  |................|
00000e80  18 0e 60 00 00 00 00 00  1c 00 00 00 00 00 00 00  |..`.............|
00000e90  08 00 00 00 00 00 00 00  f5 fe ff 6f 00 00 00 00  |...........o....|
00000ea0  98 02 40 00 00 00 00 00  05 00 00 00 00 00 00 00  |..@.............|
00000eb0  18 03 40 00 00 00 00 00  06 00 00 00 00 00 00 00  |..@.............|
00000ec0  b8 02 40 00 00 00 00 00  0a 00 00 00 00 00 00 00  |..@.............|
00000ed0  3d 00 00 00 00 00 00 00  0b 00 00 00 00 00 00 00  |=...............|
00000ee0  18 00 00 00 00 00 00 00  15 00 00 00 00 00 00 00  |................|
00000ef0  00 00 00 00 00 00 00 00  03 00 00 00 00 00 00 00  |................|
00000f00  00 10 60 00 00 00 00 00  02 00 00 00 00 00 00 00  |..`.............|
00000f10  30 00 00 00 00 00 00 00  14 00 00 00 00 00 00 00  |0...............|
00000f20  07 00 00 00 00 00 00 00  17 00 00 00 00 00 00 00  |................|
00000f30  98 03 40 00 00 00 00 00  07 00 00 00 00 00 00 00  |..@.............|
00000f40  80 03 40 00 00 00 00 00  08 00 00 00 00 00 00 00  |..@.............|
00000f50  18 00 00 00 00 00 00 00  09 00 00 00 00 00 00 00  |................|
00000f60  18 00 00 00 00 00 00 00  fe ff ff 6f 00 00 00 00  |...........o....|
00000f70  60 03 40 00 00 00 00 00  ff ff ff 6f 00 00 00 00  |`.@........o....|
00000f80  01 00 00 00 00 00 00 00  f0 ff ff 6f 00 00 00 00  |...........o....|
00000f90  56 03 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |V.@.............|
00000fa0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001000  28 0e 60 00 00 00 00 00  00 00 00 00 00 00 00 00  |(.`.............|
00001010  00 00 00 00 00 00 00 00  06 04 40 00 00 00 00 00  |..........@.....|
00001020  16 04 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |..@.............|
00001030  00 00 00 00 00 00 00 00  47 43 43 3a 20 28 55 62  |........GCC: (Ub|
00001040  75 6e 74 75 20 35 2e 34  2e 30 2d 36 75 62 75 6e  |untu 5.4.0-6ubun|
00001050  74 75 31 7e 31 36 2e 30  34 2e 31 31 29 20 35 2e  |tu1~16.04.11) 5.|
00001060  34 2e 30 20 32 30 31 36  30 36 30 39 00 00 00 00  |4.0 20160609....|
00001070  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001080  00 00 00 00 00 00 00 00  00 00 00 00 03 00 01 00  |................|
00001090  38 02 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |8.@.............|
000010a0  00 00 00 00 03 00 02 00  54 02 40 00 00 00 00 00  |........T.@.....|
000010b0  00 00 00 00 00 00 00 00  00 00 00 00 03 00 03 00  |................|
000010c0  74 02 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |t.@.............|
000010d0  00 00 00 00 03 00 04 00  98 02 40 00 00 00 00 00  |..........@.....|
000010e0  00 00 00 00 00 00 00 00  00 00 00 00 03 00 05 00  |................|
000010f0  b8 02 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |..@.............|
00001100  00 00 00 00 03 00 06 00  18 03 40 00 00 00 00 00  |..........@.....|
00001110  00 00 00 00 00 00 00 00  00 00 00 00 03 00 07 00  |................|
00001120  56 03 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |V.@.............|
00001130  00 00 00 00 03 00 08 00  60 03 40 00 00 00 00 00  |........`.@.....|
00001140  00 00 00 00 00 00 00 00  00 00 00 00 03 00 09 00  |................|
00001150  80 03 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |..@.............|
00001160  00 00 00 00 03 00 0a 00  98 03 40 00 00 00 00 00  |..........@.....|
00001170  00 00 00 00 00 00 00 00  00 00 00 00 03 00 0b 00  |................|
00001180  c8 03 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |..@.............|
00001190  00 00 00 00 03 00 0c 00  f0 03 40 00 00 00 00 00  |..........@.....|
000011a0  00 00 00 00 00 00 00 00  00 00 00 00 03 00 0d 00  |................|
000011b0  20 04 40 00 00 00 00 00  00 00 00 00 00 00 00 00  | .@.............|
000011c0  00 00 00 00 03 00 0e 00  30 04 40 00 00 00 00 00  |........0.@.....|
000011d0  00 00 00 00 00 00 00 00  00 00 00 00 03 00 0f 00  |................|
000011e0  b4 05 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |..@.............|
000011f0  00 00 00 00 03 00 10 00  c0 05 40 00 00 00 00 00  |..........@.....|
00001200  00 00 00 00 00 00 00 00  00 00 00 00 03 00 11 00  |................|
00001210  cc 05 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |..@.............|
00001220  00 00 00 00 03 00 12 00  00 06 40 00 00 00 00 00  |..........@.....|
00001230  00 00 00 00 00 00 00 00  00 00 00 00 03 00 13 00  |................|
00001240  10 0e 60 00 00 00 00 00  00 00 00 00 00 00 00 00  |..`.............|
00001250  00 00 00 00 03 00 14 00  18 0e 60 00 00 00 00 00  |..........`.....|
00001260  00 00 00 00 00 00 00 00  00 00 00 00 03 00 15 00  |................|
00001270  20 0e 60 00 00 00 00 00  00 00 00 00 00 00 00 00  | .`.............|
00001280  00 00 00 00 03 00 16 00  28 0e 60 00 00 00 00 00  |........(.`.....|
00001290  00 00 00 00 00 00 00 00  00 00 00 00 03 00 17 00  |................|
000012a0  f8 0f 60 00 00 00 00 00  00 00 00 00 00 00 00 00  |..`.............|
000012b0  00 00 00 00 03 00 18 00  00 10 60 00 00 00 00 00  |..........`.....|
000012c0  00 00 00 00 00 00 00 00  00 00 00 00 03 00 19 00  |................|
000012d0  28 10 60 00 00 00 00 00  00 00 00 00 00 00 00 00  |(.`.............|
000012e0  00 00 00 00 03 00 1a 00  38 10 60 00 00 00 00 00  |........8.`.....|
000012f0  00 00 00 00 00 00 00 00  00 00 00 00 03 00 1b 00  |................|
00001300  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001310  01 00 00 00 04 00 f1 ff  00 00 00 00 00 00 00 00  |................|
00001320  00 00 00 00 00 00 00 00  0c 00 00 00 01 00 15 00  |................|
00001330  20 0e 60 00 00 00 00 00  00 00 00 00 00 00 00 00  | .`.............|
00001340  19 00 00 00 02 00 0e 00  60 04 40 00 00 00 00 00  |........`.@.....|
00001350  00 00 00 00 00 00 00 00  1b 00 00 00 02 00 0e 00  |................|
00001360  a0 04 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |..@.............|
00001370  2e 00 00 00 02 00 0e 00  e0 04 40 00 00 00 00 00  |..........@.....|
00001380  00 00 00 00 00 00 00 00  44 00 00 00 01 00 1a 00  |........D.......|
00001390  38 10 60 00 00 00 00 00  01 00 00 00 00 00 00 00  |8.`.............|
000013a0  53 00 00 00 01 00 14 00  18 0e 60 00 00 00 00 00  |S.........`.....|
000013b0  00 00 00 00 00 00 00 00  7a 00 00 00 02 00 0e 00  |........z.......|
000013c0  00 05 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |..@.............|
000013d0  86 00 00 00 01 00 13 00  10 0e 60 00 00 00 00 00  |..........`.....|
000013e0  00 00 00 00 00 00 00 00  a5 00 00 00 04 00 f1 ff  |................|
000013f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001400  01 00 00 00 04 00 f1 ff  00 00 00 00 00 00 00 00  |................|
00001410  00 00 00 00 00 00 00 00  ac 00 00 00 01 00 12 00  |................|
00001420  f0 06 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |..@.............|
00001430  ba 00 00 00 01 00 15 00  20 0e 60 00 00 00 00 00  |........ .`.....|
00001440  00 00 00 00 00 00 00 00  00 00 00 00 04 00 f1 ff  |................|
00001450  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001460  c6 00 00 00 00 00 13 00  18 0e 60 00 00 00 00 00  |..........`.....|
00001470  00 00 00 00 00 00 00 00  d7 00 00 00 01 00 16 00  |................|
00001480  28 0e 60 00 00 00 00 00  00 00 00 00 00 00 00 00  |(.`.............|
00001490  e0 00 00 00 00 00 13 00  10 0e 60 00 00 00 00 00  |..........`.....|
000014a0  00 00 00 00 00 00 00 00  f3 00 00 00 00 00 11 00  |................|
000014b0  cc 05 40 00 00 00 00 00  00 00 00 00 00 00 00 00  |..@.............|
000014c0  06 01 00 00 01 00 18 00  00 10 60 00 00 00 00 00  |..........`.....|
000014d0  00 00 00 00 00 00 00 00  1c 01 00 00 12 00 0e 00  |................|
000014e0  b0 05 40 00 00 00 00 00  02 00 00 00 00 00 00 00  |..@.............|
000014f0  2c 01 00 00 20 00 00 00  00 00 00 00 00 00 00 00  |,... ...........|
00001500  00 00 00 00 00 00 00 00  82 01 00 00 20 00 19 00  |............ ...|
00001510  28 10 60 00 00 00 00 00  00 00 00 00 00 00 00 00  |(.`.............|
00001520  48 01 00 00 12 00 00 00  00 00 00 00 00 00 00 00  |H...............|
00001530  00 00 00 00 00 00 00 00  5a 01 00 00 10 00 19 00  |........Z.......|
00001540  38 10 60 00 00 00 00 00  00 00 00 00 00 00 00 00  |8.`.............|
00001550  26 01 00 00 12 00 0f 00  b4 05 40 00 00 00 00 00  |&.........@.....|
00001560  00 00 00 00 00 00 00 00  61 01 00 00 12 00 00 00  |........a.......|
00001570  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001580  80 01 00 00 10 00 19 00  28 10 60 00 00 00 00 00  |........(.`.....|
00001590  00 00 00 00 00 00 00 00  8d 01 00 00 20 00 00 00  |............ ...|
000015a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000015b0  9c 01 00 00 11 02 19 00  30 10 60 00 00 00 00 00  |........0.`.....|
000015c0  00 00 00 00 00 00 00 00  a9 01 00 00 11 00 10 00  |................|
000015d0  c0 05 40 00 00 00 00 00  04 00 00 00 00 00 00 00  |..@.............|
000015e0  b8 01 00 00 12 00 0e 00  40 05 40 00 00 00 00 00  |........@.@.....|
000015f0  65 00 00 00 00 00 00 00  d2 00 00 00 10 00 1a 00  |e...............|
00001600  40 10 60 00 00 00 00 00  00 00 00 00 00 00 00 00  |@.`.............|
00001610  86 01 00 00 12 00 0e 00  30 04 40 00 00 00 00 00  |........0.@.....|
00001620  2a 00 00 00 00 00 00 00  c8 01 00 00 10 00 1a 00  |*...............|
00001630  38 10 60 00 00 00 00 00  00 00 00 00 00 00 00 00  |8.`.............|
00001640  d4 01 00 00 12 00 0e 00  26 05 40 00 00 00 00 00  |........&.@.....|
00001650  15 00 00 00 00 00 00 00  d9 01 00 00 20 00 00 00  |............ ...|
00001660  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001670  ed 01 00 00 11 02 19 00  38 10 60 00 00 00 00 00  |........8.`.....|
00001680  00 00 00 00 00 00 00 00  f9 01 00 00 20 00 00 00  |............ ...|
00001690  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000016a0  c2 01 00 00 12 00 0b 00  c8 03 40 00 00 00 00 00  |..........@.....|
000016b0  00 00 00 00 00 00 00 00  00 63 72 74 73 74 75 66  |.........crtstuf|
000016c0  66 2e 63 00 5f 5f 4a 43  52 5f 4c 49 53 54 5f 5f  |f.c.__JCR_LIST__|
000016d0  00 64 65 72 65 67 69 73  74 65 72 5f 74 6d 5f 63  |.deregister_tm_c|
000016e0  6c 6f 6e 65 73 00 5f 5f  64 6f 5f 67 6c 6f 62 61  |lones.__do_globa|
000016f0  6c 5f 64 74 6f 72 73 5f  61 75 78 00 63 6f 6d 70  |l_dtors_aux.comp|
00001700  6c 65 74 65 64 2e 37 35  39 34 00 5f 5f 64 6f 5f  |leted.7594.__do_|
00001710  67 6c 6f 62 61 6c 5f 64  74 6f 72 73 5f 61 75 78  |global_dtors_aux|
00001720  5f 66 69 6e 69 5f 61 72  72 61 79 5f 65 6e 74 72  |_fini_array_entr|
00001730  79 00 66 72 61 6d 65 5f  64 75 6d 6d 79 00 5f 5f  |y.frame_dummy.__|
00001740  66 72 61 6d 65 5f 64 75  6d 6d 79 5f 69 6e 69 74  |frame_dummy_init|
00001750  5f 61 72 72 61 79 5f 65  6e 74 72 79 00 68 6f 6c  |_array_entry.hol|
00001760  61 2e 63 00 5f 5f 46 52  41 4d 45 5f 45 4e 44 5f  |a.c.__FRAME_END_|
00001770  5f 00 5f 5f 4a 43 52 5f  45 4e 44 5f 5f 00 5f 5f  |_.__JCR_END__.__|
00001780  69 6e 69 74 5f 61 72 72  61 79 5f 65 6e 64 00 5f  |init_array_end._|
00001790  44 59 4e 41 4d 49 43 00  5f 5f 69 6e 69 74 5f 61  |DYNAMIC.__init_a|
000017a0  72 72 61 79 5f 73 74 61  72 74 00 5f 5f 47 4e 55  |rray_start.__GNU|
000017b0  5f 45 48 5f 46 52 41 4d  45 5f 48 44 52 00 5f 47  |_EH_FRAME_HDR._G|
000017c0  4c 4f 42 41 4c 5f 4f 46  46 53 45 54 5f 54 41 42  |LOBAL_OFFSET_TAB|
000017d0  4c 45 5f 00 5f 5f 6c 69  62 63 5f 63 73 75 5f 66  |LE_.__libc_csu_f|
000017e0  69 6e 69 00 5f 49 54 4d  5f 64 65 72 65 67 69 73  |ini._ITM_deregis|
000017f0  74 65 72 54 4d 43 6c 6f  6e 65 54 61 62 6c 65 00  |terTMCloneTable.|
00001800  70 75 74 73 40 40 47 4c  49 42 43 5f 32 2e 32 2e  |puts@@GLIBC_2.2.|
00001810  35 00 5f 65 64 61 74 61  00 5f 5f 6c 69 62 63 5f  |5._edata.__libc_|
00001820  73 74 61 72 74 5f 6d 61  69 6e 40 40 47 4c 49 42  |start_main@@GLIB|
00001830  43 5f 32 2e 32 2e 35 00  5f 5f 64 61 74 61 5f 73  |C_2.2.5.__data_s|
00001840  74 61 72 74 00 5f 5f 67  6d 6f 6e 5f 73 74 61 72  |tart.__gmon_star|
00001850  74 5f 5f 00 5f 5f 64 73  6f 5f 68 61 6e 64 6c 65  |t__.__dso_handle|
00001860  00 5f 49 4f 5f 73 74 64  69 6e 5f 75 73 65 64 00  |._IO_stdin_used.|
00001870  5f 5f 6c 69 62 63 5f 63  73 75 5f 69 6e 69 74 00  |__libc_csu_init.|
00001880  5f 5f 62 73 73 5f 73 74  61 72 74 00 6d 61 69 6e  |__bss_start.main|
00001890  00 5f 4a 76 5f 52 65 67  69 73 74 65 72 43 6c 61  |._Jv_RegisterCla|
000018a0  73 73 65 73 00 5f 5f 54  4d 43 5f 45 4e 44 5f 5f  |sses.__TMC_END__|
000018b0  00 5f 49 54 4d 5f 72 65  67 69 73 74 65 72 54 4d  |._ITM_registerTM|
000018c0  43 6c 6f 6e 65 54 61 62  6c 65 00 00 2e 73 79 6d  |CloneTable...sym|
000018d0  74 61 62 00 2e 73 74 72  74 61 62 00 2e 73 68 73  |tab..strtab..shs|
000018e0  74 72 74 61 62 00 2e 69  6e 74 65 72 70 00 2e 6e  |trtab..interp..n|
000018f0  6f 74 65 2e 41 42 49 2d  74 61 67 00 2e 6e 6f 74  |ote.ABI-tag..not|
00001900  65 2e 67 6e 75 2e 62 75  69 6c 64 2d 69 64 00 2e  |e.gnu.build-id..|
00001910  67 6e 75 2e 68 61 73 68  00 2e 64 79 6e 73 79 6d  |gnu.hash..dynsym|
00001920  00 2e 64 79 6e 73 74 72  00 2e 67 6e 75 2e 76 65  |..dynstr..gnu.ve|
00001930  72 73 69 6f 6e 00 2e 67  6e 75 2e 76 65 72 73 69  |rsion..gnu.versi|
00001940  6f 6e 5f 72 00 2e 72 65  6c 61 2e 64 79 6e 00 2e  |on_r..rela.dyn..|
00001950  72 65 6c 61 2e 70 6c 74  00 2e 69 6e 69 74 00 2e  |rela.plt..init..|
00001960  70 6c 74 2e 67 6f 74 00  2e 74 65 78 74 00 2e 66  |plt.got..text..f|
00001970  69 6e 69 00 2e 72 6f 64  61 74 61 00 2e 65 68 5f  |ini..rodata..eh_|
00001980  66 72 61 6d 65 5f 68 64  72 00 2e 65 68 5f 66 72  |frame_hdr..eh_fr|
00001990  61 6d 65 00 2e 69 6e 69  74 5f 61 72 72 61 79 00  |ame..init_array.|
000019a0  2e 66 69 6e 69 5f 61 72  72 61 79 00 2e 6a 63 72  |.fini_array..jcr|
000019b0  00 2e 64 79 6e 61 6d 69  63 00 2e 67 6f 74 2e 70  |..dynamic..got.p|
000019c0  6c 74 00 2e 64 61 74 61  00 2e 62 73 73 00 2e 63  |lt..data..bss..c|
000019d0  6f 6d 6d 65 6e 74 00 00  00 00 00 00 00 00 00 00  |omment..........|
000019e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001a10  00 00 00 00 00 00 00 00  1b 00 00 00 01 00 00 00  |................|
00001a20  02 00 00 00 00 00 00 00  38 02 40 00 00 00 00 00  |........8.@.....|
00001a30  38 02 00 00 00 00 00 00  1c 00 00 00 00 00 00 00  |8...............|
00001a40  00 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00  |................|
00001a50  00 00 00 00 00 00 00 00  23 00 00 00 07 00 00 00  |........#.......|
00001a60  02 00 00 00 00 00 00 00  54 02 40 00 00 00 00 00  |........T.@.....|
00001a70  54 02 00 00 00 00 00 00  20 00 00 00 00 00 00 00  |T....... .......|
00001a80  00 00 00 00 00 00 00 00  04 00 00 00 00 00 00 00  |................|
00001a90  00 00 00 00 00 00 00 00  31 00 00 00 07 00 00 00  |........1.......|
00001aa0  02 00 00 00 00 00 00 00  74 02 40 00 00 00 00 00  |........t.@.....|
00001ab0  74 02 00 00 00 00 00 00  24 00 00 00 00 00 00 00  |t.......$.......|
00001ac0  00 00 00 00 00 00 00 00  04 00 00 00 00 00 00 00  |................|
00001ad0  00 00 00 00 00 00 00 00  44 00 00 00 f6 ff ff 6f  |........D......o|
00001ae0  02 00 00 00 00 00 00 00  98 02 40 00 00 00 00 00  |..........@.....|
00001af0  98 02 00 00 00 00 00 00  1c 00 00 00 00 00 00 00  |................|
00001b00  05 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00001b10  00 00 00 00 00 00 00 00  4e 00 00 00 0b 00 00 00  |........N.......|
00001b20  02 00 00 00 00 00 00 00  b8 02 40 00 00 00 00 00  |..........@.....|
00001b30  b8 02 00 00 00 00 00 00  60 00 00 00 00 00 00 00  |........`.......|
00001b40  06 00 00 00 01 00 00 00  08 00 00 00 00 00 00 00  |................|
00001b50  18 00 00 00 00 00 00 00  56 00 00 00 03 00 00 00  |........V.......|
00001b60  02 00 00 00 00 00 00 00  18 03 40 00 00 00 00 00  |..........@.....|
00001b70  18 03 00 00 00 00 00 00  3d 00 00 00 00 00 00 00  |........=.......|
00001b80  00 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00  |................|
00001b90  00 00 00 00 00 00 00 00  5e 00 00 00 ff ff ff 6f  |........^......o|
00001ba0  02 00 00 00 00 00 00 00  56 03 40 00 00 00 00 00  |........V.@.....|
00001bb0  56 03 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |V...............|
00001bc0  05 00 00 00 00 00 00 00  02 00 00 00 00 00 00 00  |................|
00001bd0  02 00 00 00 00 00 00 00  6b 00 00 00 fe ff ff 6f  |........k......o|
00001be0  02 00 00 00 00 00 00 00  60 03 40 00 00 00 00 00  |........`.@.....|
00001bf0  60 03 00 00 00 00 00 00  20 00 00 00 00 00 00 00  |`....... .......|
00001c00  06 00 00 00 01 00 00 00  08 00 00 00 00 00 00 00  |................|
00001c10  00 00 00 00 00 00 00 00  7a 00 00 00 04 00 00 00  |........z.......|
00001c20  02 00 00 00 00 00 00 00  80 03 40 00 00 00 00 00  |..........@.....|
00001c30  80 03 00 00 00 00 00 00  18 00 00 00 00 00 00 00  |................|
00001c40  05 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00001c50  18 00 00 00 00 00 00 00  84 00 00 00 04 00 00 00  |................|
00001c60  42 00 00 00 00 00 00 00  98 03 40 00 00 00 00 00  |B.........@.....|
00001c70  98 03 00 00 00 00 00 00  30 00 00 00 00 00 00 00  |........0.......|
00001c80  05 00 00 00 18 00 00 00  08 00 00 00 00 00 00 00  |................|
00001c90  18 00 00 00 00 00 00 00  8e 00 00 00 01 00 00 00  |................|
00001ca0  06 00 00 00 00 00 00 00  c8 03 40 00 00 00 00 00  |..........@.....|
00001cb0  c8 03 00 00 00 00 00 00  1a 00 00 00 00 00 00 00  |................|
00001cc0  00 00 00 00 00 00 00 00  04 00 00 00 00 00 00 00  |................|
00001cd0  00 00 00 00 00 00 00 00  89 00 00 00 01 00 00 00  |................|
00001ce0  06 00 00 00 00 00 00 00  f0 03 40 00 00 00 00 00  |..........@.....|
00001cf0  f0 03 00 00 00 00 00 00  30 00 00 00 00 00 00 00  |........0.......|
00001d00  00 00 00 00 00 00 00 00  10 00 00 00 00 00 00 00  |................|
00001d10  10 00 00 00 00 00 00 00  94 00 00 00 01 00 00 00  |................|
00001d20  06 00 00 00 00 00 00 00  20 04 40 00 00 00 00 00  |........ .@.....|
00001d30  20 04 00 00 00 00 00 00  08 00 00 00 00 00 00 00  | ...............|
00001d40  00 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00001d50  00 00 00 00 00 00 00 00  9d 00 00 00 01 00 00 00  |................|
00001d60  06 00 00 00 00 00 00 00  30 04 40 00 00 00 00 00  |........0.@.....|
00001d70  30 04 00 00 00 00 00 00  82 01 00 00 00 00 00 00  |0...............|
00001d80  00 00 00 00 00 00 00 00  10 00 00 00 00 00 00 00  |................|
00001d90  00 00 00 00 00 00 00 00  a3 00 00 00 01 00 00 00  |................|
00001da0  06 00 00 00 00 00 00 00  b4 05 40 00 00 00 00 00  |..........@.....|
00001db0  b4 05 00 00 00 00 00 00  09 00 00 00 00 00 00 00  |................|
00001dc0  00 00 00 00 00 00 00 00  04 00 00 00 00 00 00 00  |................|
00001dd0  00 00 00 00 00 00 00 00  a9 00 00 00 01 00 00 00  |................|
00001de0  02 00 00 00 00 00 00 00  c0 05 40 00 00 00 00 00  |..........@.....|
00001df0  c0 05 00 00 00 00 00 00  09 00 00 00 00 00 00 00  |................|
00001e00  00 00 00 00 00 00 00 00  04 00 00 00 00 00 00 00  |................|
00001e10  00 00 00 00 00 00 00 00  b1 00 00 00 01 00 00 00  |................|
00001e20  02 00 00 00 00 00 00 00  cc 05 40 00 00 00 00 00  |..........@.....|
00001e30  cc 05 00 00 00 00 00 00  34 00 00 00 00 00 00 00  |........4.......|
00001e40  00 00 00 00 00 00 00 00  04 00 00 00 00 00 00 00  |................|
00001e50  00 00 00 00 00 00 00 00  bf 00 00 00 01 00 00 00  |................|
00001e60  02 00 00 00 00 00 00 00  00 06 40 00 00 00 00 00  |..........@.....|
00001e70  00 06 00 00 00 00 00 00  f4 00 00 00 00 00 00 00  |................|
00001e80  00 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00001e90  00 00 00 00 00 00 00 00  c9 00 00 00 0e 00 00 00  |................|
00001ea0  03 00 00 00 00 00 00 00  10 0e 60 00 00 00 00 00  |..........`.....|
00001eb0  10 0e 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00001ec0  00 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00001ed0  00 00 00 00 00 00 00 00  d5 00 00 00 0f 00 00 00  |................|
00001ee0  03 00 00 00 00 00 00 00  18 0e 60 00 00 00 00 00  |..........`.....|
00001ef0  18 0e 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00001f00  00 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00001f10  00 00 00 00 00 00 00 00  e1 00 00 00 01 00 00 00  |................|
00001f20  03 00 00 00 00 00 00 00  20 0e 60 00 00 00 00 00  |........ .`.....|
00001f30  20 0e 00 00 00 00 00 00  08 00 00 00 00 00 00 00  | ...............|
00001f40  00 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00001f50  00 00 00 00 00 00 00 00  e6 00 00 00 06 00 00 00  |................|
00001f60  03 00 00 00 00 00 00 00  28 0e 60 00 00 00 00 00  |........(.`.....|
00001f70  28 0e 00 00 00 00 00 00  d0 01 00 00 00 00 00 00  |(...............|
00001f80  06 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00001f90  10 00 00 00 00 00 00 00  98 00 00 00 01 00 00 00  |................|
00001fa0  03 00 00 00 00 00 00 00  f8 0f 60 00 00 00 00 00  |..........`.....|
00001fb0  f8 0f 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00001fc0  00 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00001fd0  08 00 00 00 00 00 00 00  ef 00 00 00 01 00 00 00  |................|
00001fe0  03 00 00 00 00 00 00 00  00 10 60 00 00 00 00 00  |..........`.....|
00001ff0  00 10 00 00 00 00 00 00  28 00 00 00 00 00 00 00  |........(.......|
00002000  00 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00002010  08 00 00 00 00 00 00 00  f8 00 00 00 01 00 00 00  |................|
00002020  03 00 00 00 00 00 00 00  28 10 60 00 00 00 00 00  |........(.`.....|
00002030  28 10 00 00 00 00 00 00  10 00 00 00 00 00 00 00  |(...............|
00002040  00 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00002050  00 00 00 00 00 00 00 00  fe 00 00 00 08 00 00 00  |................|
00002060  03 00 00 00 00 00 00 00  38 10 60 00 00 00 00 00  |........8.`.....|
00002070  38 10 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |8...............|
00002080  00 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00  |................|
00002090  00 00 00 00 00 00 00 00  03 01 00 00 01 00 00 00  |................|
000020a0  30 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |0...............|
000020b0  38 10 00 00 00 00 00 00  35 00 00 00 00 00 00 00  |8.......5.......|
000020c0  00 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00  |................|
000020d0  01 00 00 00 00 00 00 00  11 00 00 00 03 00 00 00  |................|
000020e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000020f0  cb 18 00 00 00 00 00 00  0c 01 00 00 00 00 00 00  |................|
00002100  00 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00  |................|
00002110  00 00 00 00 00 00 00 00  01 00 00 00 02 00 00 00  |................|
00002120  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00002130  70 10 00 00 00 00 00 00  48 06 00 00 00 00 00 00  |p.......H.......|
00002140  1e 00 00 00 2f 00 00 00  08 00 00 00 00 00 00 00  |..../...........|
00002150  18 00 00 00 00 00 00 00  09 00 00 00 03 00 00 00  |................|
00002160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00002170  b8 16 00 00 00 00 00 00  13 02 00 00 00 00 00 00  |................|
00002180  00 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00  |................|
*
00002198

Recuerda que para los lenguajes interpretados es necesario un tipo de compilación conocido como JIT (Just-In-Time) o en tiempo de ejecución. Se trata de una traducción dinámica del script o código escrito en lenguaje interpretado (Java, Bash, Ruby, Python, Perl,…) a bytecode y luego a código máquina. Por ejemplo, cuando tienes un script para Bash será el propio Bash el que interprete las órdenes del script y genere las órdenes en código máquina. En el caso de Java, sería la máquina virtual de Java…

Isaac

Apasionado de la computación y la tecnología en general. Siempre intentando desaprender para apreHender.

3 thoughts on “Programación: introducción

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar