【发布时间】:2026-01-09 07:35:01
【问题描述】:
我正试图围绕程序内存在运行时分配的方式以及程序的不同部分或“段”(如果这是正确的话)。我快到了,但不完全是,需要一点帮助。
我知道该程序包含一个 .data 部分,其中包含用于初始化全局变量的只读和读写内存。我知道 .bss 部分用于未初始化的全局和静态变量,并且是可读写的。我了解堆和堆栈。
以下问题说明了我的困惑:
- 什么是 .rodata 部分,它存在于哪里?
- .data 如何处理? MASM 中的部分与 .data 部分不同?
- 是否每个程序都必须有标准的 .data、.bss、.code 部分, 还是这些约定只是指南?
- 什么决定了哪些部分是可读、可写和可执行的?
任何帮助将不胜感激。
【问题讨论】: