我想了解的过程段的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位体系结构完全不同的东西吗?
任何帮助表示赞赏。
我没有重读过你提供的链接,但是如果我没有记错,这是编译/运行你的代码在“实模式”或“保护模式”之间的主要区别。如果没有专门设置以利用'保护模式',则默认为具有所有传统限制的“实模式”。 –
当然,但分割正交于真实和保护模式正确吗? –