The smallest unit in the Section target file is a block. A block is a piece of code or data that eventually occupies continuous space in the memory image.
1. The COFF target file contains three default blocks:
. Text executable code
. Data initialized data
. Bss is the reserved space for uninitialized data
2. Assembler's Block Processing
Uninitialized Block
. Bss variable storage space
. Usect User-Defined uninitialized segment
Initialization Block
. Text Assembly command code
. Data constant data (for example, initialization data for variables)
. Sect User-Defined initialized segment
. Asect Tong. sect, which has the absolute address location function and is generally not used
3. C language segments
Uninitialized block (data)
. Bss stores global and static variables
. Bss for long calls by. ebss (exceeds the 64 K address limit)
. Stack: stack for storing C Language
. Sysmem stores C-language heap
. Sysmem for. esysmem long call (exceeds the 64 K address limit)
Initialization Block
. Text executable code and constant (program)
Constant table generated by the. switch statement (program/64 K low data space)
. Pinit Tables for global constructors (C ++) (program)
. Cinit is used to store the initialization constant values (program) for global and static variables)
. Const global and static const variable initialization value and String constant, (data)
. Econst long. const (can be located anywhere) (data)