void function(int a, int b, int c) { int bb[1]; char buffer1[5]; char buffer2[10]; int aa[1]; bb[0] = 0; buffer1[0]='a'; buffer1[4]='a'; /*buffer1[5]='b';*//*hihi*/ buffer2[0]='c'; buffer2[9]='c'; aa[0] = 1; } int main() { function(1,2,3); return 0; } =============================== .file "example1.c" .text .globl function .type function, @function function: pushl %ebp movl %esp, %ebp subl $32, %esp movl $0, -4(%ebp) movb $97, -9(%ebp) movb $97, -5(%ebp) movb $99, -19(%ebp) movb $99, -10(%ebp) movl $1, -24(%ebp) leave ret .size function, .-function .globl main .type main, @function main: leal 4(%esp), %ecx andl $-16, %esp pushl -4(%ecx) pushl %ebp movl %esp, %ebp pushl %ecx subl $12, %esp movl $3, 8(%esp) movl $2, 4(%esp) movl $1, (%esp) call function movl $0, %eax addl $12, %esp popl %ecx popl %ebp leal -4(%ecx), %esp ret .size main, .-main .ident "GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)" .section .note.GNU-stack,"",@progbits