扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
/*********************************************\
TEXT: C程序的机器级表示
AUTHOR: arden chao
DATE: 2006-10-17
EMAIL: arden1019@gmail.com
VERSION:1.0.0
\*********************************************/
////////////////////////////////
//2006-10-23 函数的内存空间<1>
////////////////////////////////
前提知识点:little-endian和big-endian 、%esp\%ebp寄存器。
我们先来对C程序的内存布局做一下了解。这里我们引用《APUE》中的一些内容阐述:
一般,C程序由下面部分组成。
+正文段:CPU执行的机器码部分。
+初始化数据段:程序中所需赋初值的变量。
+非初始化数据段bss:程序开始之前,一些不需要初始化的变量。
+栈:自动变量、函数调用时所需要保存的信息。
+堆:动态分配的内存。
|----------------|
高地址 | | 命令行参数、环境变量
|----------------|
| 栈(向下) |
|----------------|
| |
| |
| |
| |
|----------------|
| 堆(向上) |
|----------------|
|未初始化数据|
|----------------|
| 初始化变量 |
|----------------|
| |
| 正文 |
低地址 |----------------|
这次我们给一个健全点的程序,它拥有著名的main程序入口点及一个函数fun:
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者