我想了解的過程段的64位架構的實現。我碰到這2討論:分割的64位英特爾(和非英特爾)處理器
64 bit application: layout in memory
Process segments(stack,heap,data and code) are contiguous in memory?
不過,我還不清楚。在英特爾80286/80386天內引入了分段功能,以克服在16位地址中使用64K內存的限制。之後,32位英特爾機器仍然繼續它出於兼容性的原因。
現在移動到64位:該手冊說,分割很少在這裏實現(參考:http://en.wikipedia.org/wiki/X86_memory_segmentation)。虛擬內存和分頁可以提供對整個地址空間的訪問以及保護。
所以我的問題是:如何在64位程序的64位編譯器編譯?他們是否仍然像以前一樣使用「段」的概念(因爲我仍然看到數據段,堆棧段等的提及),但是使用更高的#位段指針?或者,「segment」這個詞是指64位體系結構完全不同的東西嗎?
任何幫助表示讚賞。
我沒有重讀過你提供的鏈接,但是如果我沒有記錯,這是編譯/運行你的代碼在「實模式」或「保護模式」之間的主要區別。如果沒有專門設置以利用'保護模式',則默認爲具有所有傳統限制的「實模式」。 –
當然,但分割正交於真實和保護模式正確嗎? –