函數調用時棧空間的變化

在函數調用的時候會內存分配給函數一段棧內存用於存放數據。

函數初次調用分配

1 ESP指針指向棧頂 EBP指向棧底,棧底屬於高位地址,每次存入數據由棧頂來進行儲存。
2 調用函數,EIP設定前一個函數結束,ESP所指地址存入EBP位置,此時ESP=EBP
3 ESP自動分配空間 ESP-0xch位置,同時進行下一次的存儲。此時函數調用成功。

函數調用退棧

1 ESP=EBP 此時調用下一個函數,先還原EBP,之後讀取EIP說明此函數進行調用。
2 ESP進行增位操作,自此循環進行調用。
圖文詳解:https://blog.csdn.net/xi_niuniu/article/details/44978207#commentBox

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章