一次完整的函式呼叫中棧的情形

2021-10-06 16:48:57 字數 620 閱讀 5574

暫存器 ebp 幀指標,esp棧頂幀暫存器

函式呼叫時的壓棧順序:

1.把所有或者一部分引數壓入棧中。

2.把當前指令的下一條指令的位址壓入棧中(返回位址,call)

3.跳轉到函式執行(2和3由指令call一起執行)。

4.push ebp:把ebp壓入棧中(old ebp 用於恢復呼叫者的棧幀)

5.mov ebp,esp:ebp下移指向棧頂。

6.sub esp,***:為被呼叫函式分配***位元組的棧空間,若為最深處呼叫則無此步。

7.push ***:如果由必要,儲存名為***的暫存器(可以重複多個)

函式返回時的出棧:

1.pop ***:若有必要,恢復儲存過的暫存器(可以重複多個)

2.mov esp,ebp:回滾esp,收回為被呼叫函式分配的棧幀。

3.pop ebp:此時彈出的時上乙個棧幀,放入ebp,用以恢復呼叫者棧幀。

4.ret:此指令彈出返回位址,並跳轉,eax存放返回值。

一次函式呼叫結束。

linux程序位址空間布局 核心2.4.x

一次完整的HTTP事務

http通訊機制是在一次完整的http通訊過程中,web瀏覽器與web伺服器之間將完成下列7個步驟 1.建立tcp連線 在http工作開始之前,web瀏覽器首先要通過網路與web伺服器建立連線,該連線是通過tcp來完成的,該協議與ip協議共同構建internet,即著名的tcp ip協議族,因此in...

一次完整的HTTP請求

一次完整的http請求過程從tcp三次握手建立連線成功後開始,客戶端按照指定的格式開始向服務端傳送http請求,服務端接收請求後,解析http請求,處理完業務邏輯,最後返回乙個http的響應給客戶端,http的響應內容同樣有標準的格式。無論是什麼客戶端或者是什麼服務端,大家只要按照http的協議標準...

一次完整的HTTP請求

一次完整的http請求過程從tcp三次握手建立連線成功後開始,客戶端按照指定的格式開始向服務端傳送http請求,服務端接收請求後,解析http請求,處理完業務邏輯,最後返回乙個http的響應給客戶端,http的響應內容同樣有標準的格式。無論是什麼客戶端或者是什麼服務端,大家只要按照http的協議標準...