CMD文件中的段定义
1. 汇编器对块的处理
未初始化块
.bss 变量存放空间
.usect 用户自定义的未初始化段
初始化块
.text 汇编指令代码
.data 常数数据(比如对变量的初始化数据)
.sect 用户自定义的已初始化段
.asect 通.sect,多了绝对地址定位功能,一般不用
2. C语言的段
未初始化块(data)
.bss 存放全局和静态变量
.ebss 长调用的.bss(超过了64K地址限制)
.stack 存放C语言的栈(为程序系统堆栈保留存储空间,用于保存返回地址、函数间的
参数传递、存储局部变量和保存中间结果)
.sysmem 存放C语言的堆(用于程序中的malloc 、calloc 、和realoc 函数动态分配存
储空间)
.esysmem 长调用的.sysmem(超过了64K地址限制)
初始化块
.text 可执行代码和常数(program)
.switch switch语句产生的常数表格(program/低64K数据空间)
.pinit Tables for global constructors (C++)(program)
.cinit 用来存放对全局和静态变量的初始化常数值(program)
.const 全局和静态的const变量初始化值和字符串常数,(data)
.econst 长.const(可定位到任何地方)(data)
.far 为程序中用far声明的全局和静态变量保留空间
.cio printf等输入输出函数使用的缓冲区所在的段
注意:
>> warning: creating .stack section with default size of 400 (hex) words. Use
-stack option to change the default size.
>> warning: creating .sysmem section with default size of 400 (hex) words. Use
-heap option to change the default size.
CMD文件中的段定义
1. 汇编器对块的处理
未初始化块
.bss 变量存放空间
.usect 用户自定义的未初始化段
初始化块
.text 汇编指令代码
.data 常数数据(比如对变量的初始化数据)
.sect 用户自定义的已初始化段
.asect 通.sect,多了绝对地址定位功能,一般不用
2. C语言的段
未初始化块(data)
.bss 存放全局和静态变量
.ebss 长调用的.bss(超过了64K地址限制)
.stack 存放C语言的栈(为程序系统堆栈保留存储空间,用于保存返回地址、函数间的
参数传递、存储局部变量和保存中间结果)
.sysmem 存放C语言的堆(用于程序中的malloc 、calloc 、和realoc 函数动态分配存
储空间)
.esysmem 长调用的.sysmem(超过了64K地址限制)
初始化块
.text 可执行代码和常数(program)
.switch switch语句产生的常数表格(program/低64K数据空间)
.pinit Tables for global constructors (C++)(program)
.cinit 用来存放对全局和静态变量的初始化常数值(program)
.const 全局和静态的const变量初始化值和字符串常数,(data)
.econst 长.const(可定位到任何地方)(data)
.far 为程序中用far声明的全局和静态变量保留空间
.cio printf等输入输出函数使用的缓冲区所在的段
注意:
>> warning: creating .stack section with default size of 400 (hex) words. Use
-stack option to change the default size.
>> warning: creating .sysmem section with default size of 400 (hex) words. Use
-heap option to change the default size.