通过小代码体验程序中BSS段和DATA段的差异

简介:

注:原发表在Hadoop技术论坛

 BSS(Block Started by Symbol)用来存储未初始化的全局变量,值为0的通常会被编译器认为未初始化,属于静态内存分配区,不会占用程序文件空间

DATA
用来存储已经初始化的全局变量,也属于静态内存分配区,会占用程序文件空间

TEXT
代码段,存储程序执行的代码指令,会占用程序文件空间

代码一:
int a[1024*1024*10] = {0};
int main() { return 0; }


代码二:
int a[1024*1024*10] = {1};
int main() { return 0; }


    本文转自eyjian 51CTO博客,原文链接:http://blog.51cto.com/mooon/910287,如需转载请自行联系原作者


相关文章
8086 汇编笔记(五):包含多个段的程序
8086 汇编笔记(五):包含多个段的程序
模拟实现库函数memcpy--复制内存块。详细理解内存重叠及精准复制问题
模拟实现库函数memcpy--复制内存块。详细理解内存重叠及精准复制问题
130 0
|
存储 程序员 编译器
C语言内存分区(堆,栈,全局/静态存储区,自由存储区,代码区)与可执行程序的三段-(Text段,Date段,Bss段)
C语言内存分区(堆,栈,全局/静态存储区,自由存储区,代码区)与可执行程序的三段-(Text段,Date段,Bss段)
222 0
|
存储 前端开发 rax
【CSAPP】x86-64的中央处理单元16个存储64位值的通用目的寄存器
【CSAPP】x86-64的中央处理单元16个存储64位值的通用目的寄存器
146 0
【CSAPP】x86-64的中央处理单元16个存储64位值的通用目的寄存器
|
存储 Windows
【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 逐层分析分析 静态地址 到 动态地址 的寻址 + 偏移 过程 ) ★(二)
【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 逐层分析分析 静态地址 到 动态地址 的寻址 + 偏移 过程 ) ★(二)
268 0
【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 逐层分析分析 静态地址 到 动态地址 的寻址 + 偏移 过程 ) ★(二)
|
存储 Windows
【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 逐层分析分析 静态地址 到 动态地址 的寻址 + 偏移 过程 ) ★(一)
【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 逐层分析分析 静态地址 到 动态地址 的寻址 + 偏移 过程 ) ★(一)
393 0
【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 逐层分析分析 静态地址 到 动态地址 的寻址 + 偏移 过程 ) ★(一)
|
Windows
【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 数据查找技巧 | 地址访问调试 | 指令选择技巧 | MOV 汇编指令含义 | 基址值搜索 ) ★
【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 数据查找技巧 | 地址访问调试 | 指令选择技巧 | MOV 汇编指令含义 | 基址值搜索 ) ★
612 0
【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 数据查找技巧 | 地址访问调试 | 指令选择技巧 | MOV 汇编指令含义 | 基址值搜索 ) ★
|
机器学习/深度学习 存储 Linux
内存为什么要分段? 分成多少种段? 段与段寄存器的区别?
内存为什么要分段? 分成多少种段? 段与段寄存器的区别?
汇编(三)段地址、偏移地址、内存单元、寄存器、CS、IP、代码段、debug、实验题
段地址、偏移地址、内存单元、寄存器、CS、IP、代码段、debug、实验题、汇编、汇编编程、win10怎么使用debug
10376 2