1. 程式人生 > >關於幀指標和棧指標的定義

關於幀指標和棧指標的定義

關於棧幀結構,先引用網上的一張圖:


棧的增長方向是向下的。棧有個最大地址,這個地址成為棧底,也是儲存棧裡面儲存第一個元素的位置,隨著入棧個數增加,棧頂的地址不斷減小。

esp暫存器就是專門用來儲存棧頂地址的,而棧指標便指向棧頂。


函式呼叫時的記憶體佈局:

|-----引數----------|

|---返回地址--------|

|----舊的ebp--------| 新的ebp(幀指標)就會指向這裡

|---儲存的暫存器狀態|

|--本地變數---------|

所以當前ebp-4就是返回地址,當前ebp-8就是呼叫傳來的引數。