C語言活動記錄

2021-05-28 14:18:06 字數 385 閱讀 1439

活動記錄,就是在程式執行的過程中函式呼叫時棧上的內容變化。乙個函式被呼叫,反映在棧上的與之相關的內容被稱為一幀,其中包含了引數、返回位址、老ebp值、區域性變數以及esp和ebp。

c語言預設的呼叫規約為cdecl,引數從右往左依次入棧,之後是函式的返回位址入棧,接著是老ebp入棧。

esp是棧頂指標,ebp就基指標暫存器,用它可以訪問棧中的資料,向上(棧底方向)可以獲取返回位址、引數值, 向下(棧頂方向)可以獲取函式區域性變數值。

一般而言,ss:[ebp+1]處為返回位址;ss:[ebp+8]處為第乙個引數值,ss:[ebp+0ch]為第二個引數值;ss:[ebp-4]為第乙個區域性變數,ss:[ebp]處為上一層ebp值,ebp和函式返回值是32位,所以點4位元組。

結合反彙編的例項,可參考:

MybatisPlus AR活動記錄

活動記錄ar active record 活動記錄 簡稱ar,是一種領域模型模式,特點就是乙個模型類對應關係型資料庫中的乙個表,而模型類的乙個例項對應表中的一條記錄 開啟ar模式 開啟ar模式的方法很簡單,就是讓我們的實體類繼承model類,並實現其抽象方法,指定主鍵即可,如下 public cla...

C語言 貪心 活動選擇

time limit 1000ms memory limit 65536kb submit statistic problem description 學校的大學生藝術中心週日將面向全校各個學院的學生社團開放,但活動中心同時只能供乙個社團活動使用,並且每乙個社團活動開始後都不能中斷。現在各個社團都提...

C語言記錄

1.定義乙個巨集 define swap x,y 交換x,y的值 include stdio.h define swap x,y int main 2.堆疊溢位的原因 1.函式呼叫太深 函式呼叫時會先入棧,也就是保護現場的產生的變數 棧溢位 2.動態申請的空間使用後沒有釋放 堆溢位 3.陣列訪問越界...