0
基本上,我用objdump -D
來卸載目標文件和ELF文件。我認爲兩者之間的主要區別在於。反彙編對象和可執行文件的差異
我看到目標文件(單個段)中的指令的地址以開頭。因此,連續地址是,將偏移一定的值,可能取決於對應於該特定指令的操作碼的長度。
Disassembly of section .text:
00000000 <main>:
0: 8d 4c 24 04 lea 0x4(%esp),%ecx
4: 83 e4 f0 and $0xfffffff0,%esp
7: ff 71 fc pushl -0x4(%ecx)
a: 55 push %ebp
在另一方面,對於ELF罰款我看到了一個instructions.Also 32 位地址空間如果我在我的程序打印main
地址。這相當於我拆散ELF中的地址。
08048394 <main>:
8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx
8048398: 83 e4 f0 and $0xfffffff0,%esp
804839b: ff 71 fc pushl -0x4(%ecx)
804839e: 55 push %ebp
這裏的問題是。
- ELF文件中的地址實際上指的是什麼?
- 鏈接器如何計算它們?