3

我试图了解 64 位架构中进程段的实现。我遇到了这两个讨论:

64 位应用程序:内存中的布局

进程段(堆栈、堆、数据和代码)在内存中是连续的吗?

但是,我仍然不清楚。在 Intel 80286/80386 时代,引入分段是为了克服使用 16 位地址的 64K 内存的限制。此后,出于兼容性原因,32 位 Intel 机器仍继续使用它。

现在转向 64 位:手册说这里很少实现分段(参考:http ://en.wikipedia.org/wiki/X86_memory_segmentation )。虚拟内存和分页可以提供对整个地址空间的访问以及保护。

所以我的问题是:64 位编译器如何编译 64 位程序?他们是否仍然像以前一样使用“段”的概念(因为我仍然看到提到数据段、堆栈段等),但使用更高的#位段指针?或者,“段”这个词是否指的是完全不同的 64 位架构?

任何帮助表示赞赏。

4

1 回答 1

0

64 位模式下没有段(感谢上帝!)。

英特尔领域的细分一直是一个杂项。

于 2015-04-20T15:02:29.010 回答