有人可以解释GCC正在为这段代码做些什么吗?什么是初始化?原始代码是:
#include <stdio.h>
int main()
{
}
Run Code Online (Sandbox Code Playgroud)
它被翻译成:
.file "test1.c"
.def ___main; .scl 2; .type 32; .endef
.text
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
movl $0, %eax
addl $15, %eax
addl $15, %eax
shrl $4, %eax
sall $4, %eax
movl %eax, -4(%ebp)
movl -4(%ebp), %eax
call __alloca
call ___main
leave
ret
Run Code Online (Sandbox Code Playgroud)
如果编译器/汇编大师通过解释堆栈,寄存器和段初始化来启动我,我将不胜感激.我无法从代码中删除头部或尾部.
编辑:我正在使用gcc 3.4.5.命令行参数是gcc -S test1.c
谢谢,kunjaan.