posts - 97,comments - 0,views - 12997

分段内存模型:将内存划分为几个独立的区域,每个区域称为段,通过段寄存器中的指针来引用。每个段都被用来保存某种特殊的数据。

  • Data segment: 数据段,主要用来保存声明的变量、常量等等。用.data.bss表示。
  • Code segment: 代码段,主要用来保存指令代码。用.text表示。
  • Stack segment: 栈段,主要用来保存程序执行期间函数的调用及其相关的数据,例如局部变量等。

补充两个术语:

  • Fixed Area: 这指的是一个固定的内存区域,它的大小在程序运行时是不变的。

  • Zero-Filled: 这表示一个内存区域在被分配之后会被自动填充为零。在.bss段中,程序员可以声明未初始化的静态变量。这些变量在程序开始执行之前并不占用实际的内存空间,但它们会被内存分配器标记为需要一定大小的空间。当程序开始执行时,这些未初始化的变量会被自动初始化为零值,因此.bss段也被称为零填充段。这种自动初始化可以确保程序在使用这些变量之前,它们已经具有可预测的初始值(零值)。

posted on   Dylaris  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示