13
我正在阅读装配图书。该书解释说,在计算机内存中有.text和.data部分。本书中的示例还使用以下源代码。为什么我们需要在程序集中定义.data和.text部分?
[SECTION .data]
[SECTION .text]
因为上面的代码片段是用汇编写的,所以我有一个问题。
是否在物理内存中分隔.data和.text代码(如果是这样,为什么?以及CPU是否关心?)?或者只是我们(人类)用汇编语言将它们分开?
// so ...这个操作系统是否被指定?假设我正在编写自己的操作系统(不打算这么做:)),我是否需要遵循这个约定? – Moon
让他们分开是明智的做法,因为那样你就可以对与该部分相关的每个部分做些事情。例如,您可能需要为程序的这些不同部分设计不同的内存交换输入/输出规则,内存保护代码和连续存储强制。 – Pete855217
是的我认为这是操作系统特定的,你不需要在你自己的操作系统中遵循这个约定。即使是现在,操作系统也允许将文本部分从只读改为读写,并在调试应用程序或某些调试API中写入,例如http://msdn.microsoft.com/en-us/library/ms681674(v=vs。 85)的.aspx。 但对于正常使用不在您的操作系统中,我将遵循此规则。 – Zuljin