C语言怎么使用调用函数?

 我来答
飞雪的店
推荐于2019-09-27 · TA获得超过4593个赞
知道小有建树答主
回答量:183
采纳率:100%
帮助的人:56.7万
展开全部

例子代码如下所示:

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函数的调用过程。

首先断点在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

首先压入参数1和2:

002C141E 6A 02                push        2  002C1420 6A 01                push        1  

通过观察ESP可以看到参数从右到左依次入栈,ESP往低内存方向移动8字节:

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式