可能重复:
What is default register state when program launches (asm, linux)?
我知道%esp和%eip应该由OS内核设置为正确的值,以便程序可以运行,但其他寄存器包括%ebp,%eax,%ebx,%ecx,%edx,%esi, %EDI。 OS内核是否在程序运行之前初始化它们?他们应该有什么价值?
程序开始运行时%esp的值是多少?
答案 0 :(得分:1)
如果您询问C程序 - 您无法知道,这不是您的业务。
对于集会,我也认为它们没有有意义的价值
执行main
所需的信息 - 参数计数,参数向量和环境指针 - 都在堆栈中。
在this Linux Gazette article中查看更多信息。