C语言函数调用过程

目录

C语言的函数调用过程

先上一段代码

#include<stdio.h>
int Add(int x, int y)
{
    int z = 0;
    z = x + y;
    return z;
}
#include <stdio.h>
int main()
{
    int a = 10;
    int b = 20;
    int c = Add(a, b);
    return 0;
}

这个函数计算两个数的值。接下来我们通过反汇编,来看看函数被后的过程。

反汇编代码

#include <stdio.h>
int main()
{
01151720  push        ebp  
01151721  mov         ebp,esp  
01151723  sub         esp,0E4h  
01151729  push        ebx  
0115172A  push        esi  
0115172B  push        edi  
0115172C  lea         edi,[ebp-0E4h]  
01151732  mov         ecx,39h  
01151737  mov         eax,0CCCCCCCCh  
0115173C  rep stos    dword ptr es:[edi]  
    int a = 10;
0115173E  mov         dword ptr [a],0Ah  
    int b = 20;
01151745  mov         dword ptr [b],14h  
    int c = Add(a, b);
0115174C  mov         eax,dword ptr [b]  
0115174F  push        eax  
01151750  mov         ecx,dword ptr [a]  
01151753  push        ecx  
01151754  call        _Add (01151104h)  
01151759  add         esp,8  
0115175C  mov         dword ptr [c],eax 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值