为什么我们需要在程序集中定义.data和.text部分?

时间:2011-08-31 08:04:32

标签: assembly

我正在读一本装配书。该书解释了计算机内存中有.text和.data部分。本书中的示例还使用以下源代码。

[SECTION .data]

[SECTION .text]

由于上面的代码片段是用汇编语言编写的,我有一个问题。

.data和.text代码在物理内存中分开(如果是这样,为什么?CPU会关心吗?)?或者只是我们(人类)用汇编语言将它们分开?

1 个答案:

答案 0 :(得分:16)

应用程序的文本部分是只读的,而数据则不是。无论应用程序启动多少次,许多操作系统只将文本部分加载到内存中一次。这减少了内存使用和启动时间,因为代码不会改变,所以是安全的。 数据部分包含可在应用程序执行期间更改的信息,并且必须为每个实例复制此部分。