Section目標文件中最小單位稱爲塊,一個塊就是最終在存儲器映象中佔據連續空間的一段代碼或數據。
1、COFF目標文件包含三個默認的塊:
.text可執行代碼.data已初始化數據
.bss爲未初始化數據保留的空間
2、彙編器對塊的處理
未初始化塊
.bss 變量存放空間.usect 用戶自定義的未初始化段
初始化塊
.text 彙編指令代碼.data 常數數據(比如對變量的初始化數據)
.sect 用戶自定義的已初始化段
.asect 通.sect,多了絕對地址定位功能,一般不用
3、C語言的段
未初始化塊(data)
.bss 存放全局和靜態變量.ebss 長調用的.bss(超過了64K地址限制)
.stack 存放C語言的棧
.sysmem 存放C語言的堆
.esysmem 長調用的.sysmem(超過了64K地址限制)
初始化塊
.text 可執行代碼和常數(program).switch switch語句產生的常數表格(program/低64K數據空間)
.pinit Tables for global constructors (C++)(program)
.cinit 用來存放對全局和靜態變量的初始化常數值(program)
.const 全局和靜態的const變量初始化值和字符串常數,(data)
.econst 長.const(可定位到任何地方)(data)