反汇编一个简单的C程序并分析

时间:2021-10-25 00:51:48

反汇编一个简单的C程序并分析

C 源码:

int g(int x)
{
return x+1;
}

int f(int x)
{
return g(x);
}

int main(void)
{
return f(2) + 3;
}

汇编源码:

1 g:
2 pushl %ebp
3 movl %esp, %ebp
4 movl 8(%ebp), %eax
5 addl $1, %eax
6 popl %ebp
7 ret
8 f:
9 pushl %ebp
10 movl %esp, %ebp
11 subl $4, %esp
12 movl 8(%ebp), %eax
13 movl %eax, (%esp)
14 call g
15 leave
16 ret
17 main:
18 pushl %ebp
19 movl %esp, %ebp
20 subl $4, %esp
21 movl $2, (%esp)
22 call f
23 addl $3, %eax
24 leave
25 ret

执行过程:(从 main 开始)

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析


原创作品转载请注明出处


http://blog.luoyuanhang.cn

MOOC课程
《Linux内核分析》

Created By 罗远航

luoyhang003@hotmail.com

July 03,2015