免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

<一>從指令角度了解函數(shù)堆棧調(diào)用過程

代碼

點擊查看代碼#include <iostream>using namespace std;int sum(int a,int b){ int temp=0; temp=a +b; return temp;}int main(){ int a =10; int b=20; int ret =sum(a,b); return 0;}
以上代碼考慮2個問題:問題1:main函數(shù)調(diào)用sum,sum執(zhí)行完成以后,怎么知道回到哪個函數(shù)中?問題2:sum函數(shù)執(zhí)行完后,回到main后,怎么知道從哪一行指令繼續(xù)執(zhí)行的?//------------------------------------------------------------------------------------------------------------------
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖
//------------------------------------------------------------------------------------------------------------------函數(shù)參數(shù)壓棧
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖
【<一>從指令角度了解函數(shù)堆棧調(diào)用過程】//------------------------------------------------------------------------------------------------------------------函數(shù)參數(shù)壓棧
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖
//------------------------------------------------------------------------------------------------------------------下一條匯編指令地址入棧
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖
//------------------------------------------------------------------------------------------------------------------main函數(shù)棧底指針入棧
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖
//------------------------------------------------------------------------------------------------------------------移動ebp,進入被調(diào)函數(shù)
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖
//------------------------------------------------------------------------------------------------------------------為sum函數(shù)開辟函數(shù)棧幀
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖
//------------------------------------------------------------------------------------------------------------------將返回值放入寄存器
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖
//------------------------------------------------------------------------------------------------------------------回退esp棧指針
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖
//------------------------------------------------------------------------------------------------------------------將ebp指回main函數(shù)棧底
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖
//------------------------------------------------------------------------------------------------------------------取出下一條執(zhí)行的匯編指令地址并執(zhí)行
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖
//------------------------------------------------------------------------------------------------------------------
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖
此時 esp,ebp 又指向了main函數(shù)的棧底指針和棧頂指針//------------------------------------------------------------------------------------------------------------------
&lt;一&gt;從指令角度了解函數(shù)堆棧調(diào)用過程

文章插圖

    經(jīng)驗總結(jié)擴展閱讀