C语言程序的反汇编分析2

这篇博客详细分析了C语言程序的反汇编代码,以一个简单的func函数和main函数为例,探讨了栈内存分配、局部变量的处理以及函数调用后的栈检查。在main函数中,重点解释了因定义局部变量result导致的栈空间调整和函数调用后的栈一致性检查。在func函数中,解析了参数传递和返回值的处理过程。

1、  程序如下:

#include <stdio.h>

int func(int a,int b)

{

       int c=a+b;

       return c;

}

int main()

{

       int result;

       result=func(1,2);

       return 0;

}

2、  分析如下:

㈠、首先我们可以查看主函数的反汇编代码,如下:

7:    int main()

8:    {

00401060   push        ebp

00401061   mov         ebp,esp

00401063   sub         esp,44h

00401066   push        ebx

00401067   push        esi

00401068   push        edi

00401069   lea         edi,[ebp-44h]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值