- 论坛徽章:
- 0
|
我写了如下的C
#include <stdio.h>
#include <stdlib.h>
int main()
{
return EXIT_SUCCESS;
}
gcc -S main.c 生成的文件如下
.file "main.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 //这里为何是减 8
andl $-16, %esp//这里好像是把最后几位给清0了
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
movl $0, %eax
leave
ret
谁能把两个/*****************/之间的内容的含义告诉我
非常感谢。
[ 本帖最后由 csea 于 2007-9-29 22:47 编辑 ] |
|