Date: Fri, 05 Mar 2004 13:43:04 -0500 From: Chungwei Hsiung <skuma17@yahoo.com> To: freebsd-hackers@freebsd.org Subject: A simple question Message-ID: <4048CA38.6040203@yahoo.com>
next in thread | raw e-mail | index | archive | help
Hello.. I am super new to this list, and I have a simple question that I don't know why it does that. I have a simple test program. I compile it, and gdb to disassemble main. I got the following.. 0x80481f8 <main>: push %ebp 0x80481f9 <main+1>: mov %esp,%ebp 0x80481fb <main+3>: sub $0x8,%esp 0x80481fe <main+6>: and $0xfffffff0,%esp 0x8048201 <main+9>: mov $0x0,%eax 0x8048206 <main+14>: sub %eax,%esp 0x8048208 <main+16>: movl $0x804a6ce,0xfffffff8(%ebp) 0x804820f <main+23>: movl $0x0,0xfffffffc(%ebp) 0x8048216 <main+30>: sub $0x4,%esp 0x8048219 <main+33>: push $0x0 0x804821b <main+35>: lea 0xfffffff8(%ebp),%eax 0x804821e <main+38>: push %eax 0x804821f <main+39>: pushl 0xfffffff8(%ebp) 0x8048222 <main+42>: call 0x804823c <execve> 0x8048227 <main+47>: add $0x10,%esp 0x804822a <main+50>: mov $0x0,%eax 0x804822f <main+55>: leave 0x8048230 <main+56>: ret I don't know if at line 5, we move zero to %eax. why do we need to sub %eax, %esp? why do we need to substract 0 from the stack pointer?? Any help is really appreciated. best regards Chungwei
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4048CA38.6040203>