===汇编基础====汇编语言程序由定义好的段构成,常用三个段:数据段 初始值的数据元素BSS段 使用零初始化的数据元素文本段 程序代码注明:在BSS段中声明的数据,是不包含在可执行程序中的,但是数据段必然包含在科执行程序中汇编的编写有如下规则:定义段 使用.section伪指令定义)定义入口点 使...
分类:
系统相关 时间:
2015-03-29 01:49:11
阅读次数:
162
Linux应用程序在内存中的布局,由高地址到低地址依次为:栈、堆、BSS段、数据段、代码段。代码段的起始地址固定为0x8048000,无论哪一个应用程序它的代码段起始地址一定是0x8048000,这里的地址虚拟地址,映射到不同的物理地址中去。 查看程序各段的地址 ps aux ...
分类:
系统相关 时间:
2015-02-16 18:12:46
阅读次数:
167
1.内存分配区间: 对于一个C语言程序而言,内存空间主要由五个部分组成:代码段(.text)、数据段(.data)、静态区(.BSS)、堆和栈组成。 BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量和静态变量(这里注意一个问题:一般的书上都会说全局变量和...
分类:
编程语言 时间:
2015-02-08 23:10:19
阅读次数:
309
1,内存中各个地址范围的含义按照地址范围由低到高的顺序:0-3G的地址范围:代码段:代码的可执行文件,一般为只读并且是共享的。(RO code/data)数据段:存已经被初始化的全局变量(RW data) static char *user="jiangsu"BSS段:存一些未被初始化的全局变量(....
分类:
系统相关 时间:
2015-01-26 20:58:46
阅读次数:
204
BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于...
分类:
其他好文 时间:
2015-01-11 17:38:13
阅读次数:
286
一个程序一般分为3段:text段,data段,bss段text段:就是放程序代码的,编译时确定,只读,data段:存放在编译阶段(而非运行时)就能确定的数据,可读可写就是通常所说的静态存储区,赋了初值的全局变量和静态变量存放在这个区域,常量也存放在这个区域bss段:定义而没有赋初值的全局变量和静态变量,放在这个区域
一个由C/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)―...
分类:
编程语言 时间:
2015-01-06 20:06:24
阅读次数:
246
12.bss段的初始化
在C代码:有初始化全局的数据段,局部的栈,malloc部分的堆,未初始化的全局的bss段。 从上面的编译的信息知道:
Bss段的起始地址:0001052c
Bss段的结束地址:00010534
我们的hello变量的地址:00010530是落在bss段里的地址的。所以是存在b...
分类:
其他好文 时间:
2015-01-05 18:28:41
阅读次数:
142
非类中1) 隐藏 修饰对象: 全局变量 和 函数 编译多个源文件添加static 使其作用域 限定在 当前源文件 带来一个好处: 不必担心命名冲突2)默认初始化为0 对象:未初始化全局变量(BSS 段 默认初始化本来就是 0) 和 局部变量3) 改变静态局部变量的生存周期 生命周期为整个...
分类:
其他好文 时间:
2014-12-11 20:45:22
阅读次数:
188
main函数执行之前,主要就是初始化系统相关资源: 1. 设置栈指针 2. 初始化static静态和global全局变量,即data段的内容 3. 将未初始化部分的全局变量赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL,等等,即.bss段的内容 4. 全局对象...
分类:
其他好文 时间:
2014-12-11 12:17:49
阅读次数:
134
参考:《UNIX环境高级编程》第7章 7.6节
C程序一般有下面几部分构成
正文段:又叫文本段,这是有CPU执行的机器指令部分。通常,正文段是可以共享的,并 且是只读的。
初始化数据段:通常将此段作为数据段,它包含了程序中需要明确的赋初值的变量,比如函 数外的声明:int cnt = 10;
非初始化数据段:通常此数据段称为bss段(block start symbol),在程...
分类:
其他好文 时间:
2014-12-04 20:05:19
阅读次数:
201