- 论坛徽章:
- 0
|
呵呵,哪位来分析下吧
- int f(int i)
- {
- int aa[i];
- printf("%d\n",sizeof(aa));
- return 0;
- }
复制代码
- .file "d.c"
- .section .rodata.str1.1,"aMS",@progbits,1
- .LC0:
- .string "%d\n"
- .text
- .globl f
- .type f, @function
- f:
- pushl %ebp
- movl %esp, %ebp
- subl $24, %esp
- movl %ebx, -4(%ebp)
- movl %esp, %ebx
- movl 8(%ebp), %eax
- decl %eax
- sall $2, %eax
- leal 4(%eax), %edx
- addl $19, %eax
- andl $-16, %eax
- subl %eax, %esp
- movl %edx, 4(%esp)
- movl $.LC0, (%esp)
- call printf
- movl %ebx, %esp
- movl $0, %eax
- movl -4(%ebp), %ebx
- movl %ebp, %esp
- popl %ebp
- ret
- .size f, .-f
- .section .note.GNU-stack,"",@progbits
复制代码 |
|