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语言经典算法100例30页
- C语言经典编程算法15页
- 数据结构经典算法 C语言版14页
- C语言经典四种算法详解11页
- C语言经典算法9页
- C语言经典算法9页
- C语言指针用法详解8页
- C语言中的指针详解6页
- 彻底搞定C语言指针详解-完整版- 适合初学者-必备14页
- C语言指针用法详解15页
- C语言中不同的结构体类型的指针间的强制转换详解3页
- 详解C语言指针变量交换问题2页
- 史上最全Linux系统命令及使用方法详解(程序员)39页
- Linux基本系统命令及其使用详解手册39页
- Linux系统命令及其使用详解39页
- Linux 系统命令及其使用详解26页
- 最新Linux系统命令及其使用详解119页
- Linux系统命令及其使用详解34页
- C语言生僻关键字详解4页
- C语言的32个关键字3页
- ASCII码表 C语言转义字符 C语言运算符及其优先表 C语言关键字 C语言数据类型大全6页
- C语言关键字中英文对照索引4页
- 关键字C语言2页
- C语言关键字5页


