例子代碼如下所示:

成都創(chuàng)新互聯(lián)公司:2013年至今為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設”服務,為超過千家公司企業(yè)提供了專業(yè)的網(wǎng)站設計、網(wǎng)站制作、網(wǎng)頁設計和網(wǎng)站推廣服務, 按需規(guī)劃網(wǎng)站由設計師親自精心設計,設計的效果完全按照客戶的要求,并適當?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。
int Add(int x, int y) { ? ?int sum;
sum = x + y; ? ?return sum;
}void main() { ? ?int z;
z = Add(1, 2); ? ?printf("z=%d\n", z);
}
下面分析一下 Add函數(shù)的調(diào)用過程。
首先斷點在z = Add(1, 2);處, 反匯編如下所示:
int z;
z = Add(1, 2);002C141E 6A 02 ? ? ? ? ? ? ? ?push ? ? ? ?2 ?002C1420 6A 01 ? ? ? ? ? ? ? ?push ? ? ? ?1 ?002C1422 E8 60 FC FF FF ? ? ? call ? ? ? ?002C1087 ?橘游
002C1427 83 C4 08 ? ? ? ? ? ? add ? ? ? ? esp,8 ?002C142A 89 45 F8 ? ? ? ? ? ? mov ? ? ? ? dword ptr [ebp-8],eax
首先壓入?yún)?shù)1和2:
002C141E 6A 02 ? ? ? ?圓脊銷 ? ? ? ?push ? ? ? ?2 ?野高002C1420 6A 01 ? ? ? ? ? ? ? ?push ? ? ? ?1 ?
通過觀察ESP可以看到參數(shù)從右到左依次入棧,ESP往低內(nèi)存方向移動8字節(jié):
ESP=0025FCCC
...0x0025FCAA ?00 00 78 4c 33 00 bc fc 25 00 a9 fe aa 0f 78 4c 33 00 c8 fc 25 00 3d 5a b2 0f *** 01 00 00 00 02 00 00 00 ***0x0025FCCC ?00 00 00 00
網(wǎng)站標題:c語言函數(shù)引用的用法 c語言中引用的用法
鏈接分享:http://chinadenli.net/article13/dshosgs.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、微信小程序、服務器托管、網(wǎng)站設計公司、標簽優(yōu)化、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)