exe文件包含数据段、代码段

来源:互联网 发布:2016网络语 编辑:程序博客网 时间:2024/06/07 18:38

数据段、代码段在编译时就能确认地址,而堆栈段属于动态内存开辟,编译时无法确定。

以win32程序为例。

程序执行时,操作系统将exe文件映射入内存。exe文件格式为头数据和各段数据组成。头数据说明了exe文件的属性和执行环境,段数据又分为数据段,代码段,资源段等,段的多少和位置由头数据说明。也就是说,不仅仅只是代码段和数据段。这些段由不同的编译环境和编译参数控制,由编译器自动生成exe的段和文件格式。当操作系统执行exe时,会动态建立堆栈段,它是动态的,并且属于操作系统执行环境。

也就是说,程序在内存的映射一个为exe文件映射,包括数据段、代码段等它是不变的。
另一个为堆栈段,它是随程序运行动态改变的。

其他操作系统会有他自己的执行方式,但大体如上。
0 0
原创粉丝点击