Good idea!
objdump -D helloc.o:
Code:
helloc.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <main>:
0: 48 83 ec 08 sub $0x8,%rsp
4: bf 00 00 00 00 mov $0x0,%edi
9: e8 00 00 00 00 callq e <main+0xe>
e: b8 00 00 00 00 mov $0x0,%eax
13: 48 83 c4 08 add $0x8,%rsp
17: c3 retq
0000000000000018 <b_output>:
18: 48 83 ec 08 sub $0x8,%rsp
1c: 48 89 3c 24 mov %rdi,(%rsp)
20: 48 8b 04 24 mov (%rsp),%rax
24: 48 89 c6 mov %rax,%rsi
27: ff 14 25 10 00 10 00 callq *0x100010
2e: 90 nop
2f: 48 83 c4 08 add $0x8,%rsp
33: c3 retq
Disassembly of section .rodata:
0000000000000000 <.rodata>:
0: 48 rex.W
1: 65 6c gs insb (%dx),%es:(%rdi)
3: 6c insb (%dx),%es:(%rdi)
4: 6f outsl %ds:(%rsi),(%dx)
5: 20 77 6f and %dh,0x6f(%rdi)
8: 72 6c jb 76 <b_output+0x5e>
a: 64 2c 20 fs sub $0x20,%al
d: 66 72 6f data16 jb 7f <b_output+0x67>
10: 6d insl (%dx),%es:(%rdi)
11: 20 43 21 and %al,0x21(%rbx)
14: 0a 00 or (%rax),%al
Disassembly of section .comment:
0000000000000000 <.comment>:
0: 00 47 43 add %al,0x43(%rdi)
3: 43 3a 20 rex.XB cmp (%r8),%spl
6: 28 55 62 sub %dl,0x62(%rbp)
9: 75 6e jne 79 <b_output+0x61>
b: 74 75 je 82 <b_output+0x6a>
d: 20 35 2e 34 2e 30 and %dh,0x302e342e(%rip) # 302e3441 <b_output+0x302e3429>
13: 2d 36 75 62 75 sub $0x75627536,%eax
18: 6e outsb %ds:(%rsi),(%dx)
19: 74 75 je 90 <b_output+0x78>
1b: 31 7e 31 xor %edi,0x31(%rsi)
1e: 36 2e 30 34 2e ss xor %dh,%cs:(%rsi,%rbp,1)
23: 34 29 xor $0x29,%al
25: 20 35 2e 34 2e 30 and %dh,0x302e342e(%rip) # 302e3459 <b_output+0x302e3441>
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)
...
Disassembly of section .eh_frame:
0000000000000000 <.eh_frame>:
0: 14 00 adc $0x0,%al
2: 00 00 add %al,(%rax)
4: 00 00 add %al,(%rax)
6: 00 00 add %al,(%rax)
8: 01 7a 52 add %edi,0x52(%rdx)
b: 00 01 add %al,(%rcx)
d: 78 10 js 1f <.eh_frame+0x1f>
f: 01 1b add %ebx,(%rbx)
11: 0c 07 or $0x7,%al
13: 08 90 01 00 00 14 or %dl,0x14000001(%rax)
19: 00 00 add %al,(%rax)
1b: 00 1c 00 add %bl,(%rax,%rax,1)
1e: 00 00 add %al,(%rax)
20: 00 00 add %al,(%rax)
22: 00 00 add %al,(%rax)
24: 18 00 sbb %al,(%rax)
26: 00 00 add %al,(%rax)
28: 00 44 0e 10 add %al,0x10(%rsi,%rcx,1)
2c: 53 push %rbx
2d: 0e (bad)
2e: 08 00 or %al,(%rax)
30: 14 00 adc $0x0,%al
32: 00 00 add %al,(%rax)
34: 34 00 xor $0x0,%al
36: 00 00 add %al,(%rax)
38: 00 00 add %al,(%rax)
3a: 00 00 add %al,(%rax)
3c: 1c 00 sbb $0x0,%al
3e: 00 00 add %al,(%rax)
40: 00 44 0e 10 add %al,0x10(%rsi,%rcx,1)
44: 57 push %rdi
45: 0e (bad)
46: 08 00 or %al,(%rax)
I'll look into what .comment and .eh_frame are for.
Thanks,
Ian