13
私はアセンブリの本を読んでいます。この本は、コンピュータのメモリに.textセクションと.dataセクションがあることを説明しています。本の例では、次のソースコードも使用しています。アセンブリで.dataセクションと.textセクションを定義する必要があるのはなぜですか?
[SECTION .data]
[SECTION .text]
上記コードスニペットはアセンブリで記述されているため、質問があります。
物理メモリに.dataと.textコードが区切られていますか(なぜそうであれば、CPUは気にしますか?)またはアセンブリ言語でそれらを分離するのは私たち(人間)ですか?
//このOSは指定されていますか?私が自分のOSを書いているとします(私はそれをするつもりはありません:))、私はこのコンベンションに従う必要がありますか? – Moon
それらを別々にしておくことは、そのセクションに関連する各セクションに作業を行うことができるためです。たとえば、異なるメモリスワップのイン/アウトルール、メモリ保護コード、および連続したストレージエンフォースメントをプログラムのこれらの異なる部分に設計することができます。 – Pete855217
はい、これはOS固有のものだと思います。あなた自身のOSでこの規則に従う必要はありません。今でも、OSは、アプリケーションやデバッグAPIのデバッグ中に、テキストセクションを読み取り専用から読み取りと書き込みに変更することができます。http://msdn.microsoft.com/en-us/library/ms681674(v=vs。 85).aspx。 あなたのOSでない通常の使用の場合、私はこの規則に従います。 – Zuljin