Possible Duplicate:
What is default register state when program launches (asm, linux)?
I know the %esp and %eip should set to proper values by the OS kernel, so that the program can run, but other registers including %ebp,%eax,%ebx,%ecx,%edx,%esi,%edi. Does OS kernel initialize them before a program running? What values should they have?
What's the value should %esp have when a program starts running?