2012-05-15 19 views
1

可能重複:
What is default register state when program launches (asm, linux)?程序開始運行時,所有通用寄存器的值是什麼?

我知道%ESP和%EIP應該由OS內核設置爲適當的值,從而使程序可以運行,但是其他寄存器,包括% EBP,%eax中,EBX%,ECX%,%EDX,ESI%,%EDI。操作系統內核在程序運行之前對它們進行初始化?他們應該有什麼樣的價值?

當程序開始運行時,%esp應該有什麼值?

+0

內核初始化它們是什麼,爲什麼?根據你的源代碼,我猜他們是在使用時初始化的。 – dbrank0

回答

1

如果你問一個C程序 - 你不知道,這不是你的業務。

對於裝配,我也不認爲他們有意義的價值。
執行main所需的信息 - 參數計數,參數向量和環境指針 - 全部在堆棧中。

查看更多的信息在this Linux Gazette article

相關問題