c语言函数调用详细过程

c语言函数调用详细过程

作者: Badcoffee

Email: blog.oliver@gmail.com

2004年10月

原文出处: www.51wendang.com

这是作者在学习X86汇编过程中的学习笔记,难免有错误和疏漏之处,欢迎指正。

1. 编译环境

OS: Axianux 1.0

Compiler: gcc 3..2.3

Linker: Solaris Link Editors 5.x

Debug Tool: gdb

Editor: vi

<!--[if !supportLineBreakNewLine]-->

<!--[endif]-->

2. 最简C代码分析

<!--[if !supportLineBreakNewLine]-->

<!--[endif]-->

为简化问题,来分析一下最简的c代码生成的汇编代码:

# vi test1.c

int main()

{

return 0;

}

编译该程序,产生二进制文件:

# gcc -o start start.c

# file start

start: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped start是一个ELF格式32位小端(Little Endian)的可执行文件,动态链接并且符号表没有去除。这正是Unix/Linux平台典型的可执行文件格式。 用gdb反汇编可以观察生成的汇编代码:

[wqf@15h166 attack]$ gdb start

GNU gdb Asianux (6.0post-0.20040223.17.1AX)

你可能喜欢

  • 语言分析
  • C语言经典算法
  • C语言指针详解
  • Linux系统命令使用详解
  • C语言关键字
  • Excel使用技巧大全(超
  • C语言程序设计

c语言函数调用详细过程相关文档

最新文档

返回顶部