我已经将以下C函数(在sum.c中)编译成目标代码:
int sum(int a, int b)
{
return (a + b);
}
使用
gcc -c sum.c
当我使用size
检查不同部分的大小时:
size sum.o
text data bss dec hex filename
112 0 0 112 70 sum.o
它告诉我文本部分分配了112个字节。但是当我使用objdump
反汇编它时:
objdump -d sum.o
sum.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <sum>:
0: f3 0f 1e fa endbr64
4: 55 push %rbp
5: 48 89 e5 mov %rsp,%rbp
8: 89 7d fc mov %edi,-0x4(%rbp)
b: 89 75 f8 mov %esi,-0x8(%rbp)
e: 8b 55 fc mov -0x4(%rbp),%edx
11: 8b 45 f8 mov -0x8(%rbp),%eax
14: 01 d0 add %edx,%eax
16: 5d pop %rbp
17: c3 retq
.text
部分只有 17 字节的指令。我是否遗漏了什么?