我知道這個主題已被覆蓋ad nauseam在這裏,以及在互聯網上的其他地方 - 但希望這個問題是一個簡單的問題,因爲我試圖讓我的頭繞着程序集...程序集中的堆棧/基址指針
所以,如果我理解正確的ebp(基指針)將指向堆棧的頂部,並且ESP(堆棧指針)將指向底部 - 因爲堆棧向下增長。因此,指向'當前位置'。 因此,在函數調用中,一旦將ebp保存在堆棧中,您將爲該函數插入一個新的堆棧幀。所以對於下面的圖片來說,如果你從N-3開始,你可以通過函數調用來使用N-2。但是當你在N-2時 - 你的ebp == 25和esp == 24(至少在開始之前,在將任何數據放入堆棧之前)?
這是正確的還是我在這裏的切線?
謝謝!
我打算繼續並將其標記爲C,因爲它聽起來像是在試圖瞭解C編譯器生成的代碼是幹什麼的。如果這不正確,請隨時刪除該標記。 – Earlz 2010-04-28 01:30:16