Let's say I run objdump -d
on an object file generated by a C compiler and I get this disassembly:
0000000000400b5e <main>:
400b5e: 55 push %rbp
400b5f: 48 89 e5 mov %rsp,%rbp
400b62: bf 50 0a 49 00 mov $0x490a50,%edi
400b67: e8 04 0b 00 00 callq 401670 <_IO_puts>
400b6c: 5d pop %rbp
400b6d: c3 retq
400b6e: 66 90 xchg %ax,%ax
I'm not sure how to interpret everything here. Take the line:
400b62: bf 50 0a 49 00 mov $0x490a50,%edi
I get what the mov
statement is doing, but what does the 400b62
mean? What does the bf 50 0a 49 00
mean? I couldn't find anything on the Internet explaining how to read this stuff.