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