KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Could somebody please explain what GCC is doing for this piece of code? What is it initializing? The original code is: #include <stdio.h> int main() { } And it was translated to: .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 I would be grateful if a compiler/assembly guru got me started by explaining the stack, register and the section initializations. I cant make head or tail out of the code. EDIT: I am using gcc 3.4.5. and the command line argument is gcc -S test1.c Thank You, kunjaan.
Tags (comma-separated)
Save Edits
Cancel