色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置: > 華清遠見教育科技集團 > 嵌入式學(xué)習(xí) > 講師博文 > 淺析C語言中的棧操作
淺析C語言中的棧操作
時間:2016-12-13作者:華清遠見

匯編/C語言中的'數(shù)據(jù)棧'跟數(shù)據(jù)結(jié)構(gòu)中的'邏輯棧'類似都是遵循先進后出后進先出原則,但是在實際操作過程中的基本單位不同:

1.在數(shù)據(jù)結(jié)構(gòu)中的'邏輯棧'按照使用者自己的需求定義大小及基本單位。例如可以存放10個char型,也可以存放20個結(jié)構(gòu)體等。

2.在匯編或C語言本身的'數(shù)據(jù)棧'中棧大小由編譯器指定,遵循FIFO規(guī)則的基本單位是棧幀,即每調(diào)用一個函數(shù)都會有一個新的棧幀加入,而函數(shù)返回則以棧幀為單位出棧。

棧幀也叫過程活動記錄,是編譯器用來實現(xiàn)過程/函數(shù)調(diào)用的一種數(shù)據(jù)結(jié)構(gòu)。其實就是一個函數(shù)執(zhí)行的環(huán)境:函數(shù)參數(shù)、函數(shù)的局部變量、函數(shù)執(zhí)行完后返回到哪里等等。

因此,在同一個棧幀內(nèi)數(shù)據(jù)的訪問可以使隨機的,匯編中可以通過ebp 指針向上或向下任意偏移就可以訪問當前函數(shù)內(nèi)部的所有局部變量,或向上偏移就可以訪問調(diào)用者對當前函數(shù)的傳參。(因為棧的增長空間是從高地址到低地址。)


下面是函數(shù)調(diào)用過程中的操作:

當發(fā)生函數(shù)調(diào)用的時候,棧空間中存放的數(shù)據(jù)是這樣的:

1、調(diào)用者函數(shù)把被調(diào)函數(shù)所需要的參數(shù)按照與被調(diào)函數(shù)的形參順序相反的順序壓入棧中,即:從右向左依次把被調(diào)函數(shù)所需要的參數(shù)壓入棧;

2、調(diào)用者函數(shù)使用call指令調(diào)用被調(diào)函數(shù),并把call指令的下一條指令的地址當成返回地址壓入棧中(這個壓棧操作隱含在call指令中);

3、在被調(diào)函數(shù)中,被調(diào)函數(shù)會先保存調(diào)用者函數(shù)的棧底地址(push ebp),然后再保存調(diào)用者函數(shù)的棧頂?shù)刂?即:當前被調(diào)函數(shù)的棧底地址(mov ebp,esp);

4、在被調(diào)函數(shù)中,從ebp的位置處開始存放被調(diào)函數(shù)中的局部變量和臨時變量,并且這些變量的地址按照定義時的順序依次減小,即:這些變量的地址是按照棧的延伸方向排列的,先定義的變量先入棧,后定義的變量后入棧;

所以,發(fā)生函數(shù)調(diào)用時,入棧的順序為:
        參數(shù)N
        參數(shù)N-1
        參數(shù)N-2
        .....
        參數(shù)3
        參數(shù)2
        參數(shù)1
        函數(shù)返回地址
        上一層調(diào)用函數(shù)的EBP/BP
        局部變量1
        局部變量2
        ....
        局部變量N

發(fā)表評論
評論列表(網(wǎng)友評論僅供網(wǎng)友表達個人看法,并不表明本站同意其觀點或證實其描述)
主站蜘蛛池模板: 99久久国产综合精品成人影院 | 久久99激情 | 欧美第一黄网免费网站 | 亚洲av日韩av高潮无码专区 | 最近2019中文字幕大全视频10 | 色综合天天综合高清网国产在线 | 亚洲阿v天堂在线2017 | 91视频免费看 | 中文无码精品A∨在线观看不卡 | 看日本黄色一级片 | 在线天堂资源www中文 | 麻豆传媒视频在线免费观看 | 免费看日b视频 | 最新国产精品拍自在线观看 | 亚洲色大成网站WWW看下面 | 无码播放一区二区三区 | 亚洲爆乳AAA无码专区 | 蝴蝶中文综合娱乐网 | 亚洲精品综合一二三区在线观看 | 中文字幕与邻居少妇性刺激 | 女人被添全过程a片免费视频 | 永久免费的啪啪网站免费观看浪潮 | 精品人妻无码一区二区三区百度 | 久久婷婷人人澡人爽人人喊 | CONDOM色孩交VIDEOS精品 | 992tv精品视频tv在线观看 | 亚洲色精品VR一区区三区 | 四虎影视国产 | 护士脱了内裤让我爽了一夜视频 | 探花口爆颜射乳交日韩 | 成全在线观看免费观看高清 | 国产精品久久久久久无码五月 | 最新看片 | 人妻夜夜爽天天爽三区 | 亚洲精品无码久久久久苍井空国产一 | 丰满妇女强制高潮18XXXX | 国产裸体裸拍免费观看 | 西西444WWW大胆无码视频 | 综合网久久 | 久久丁香五月丁中文精品 | 中文字幕九九在线 |