【发布时间】:2015-01-08 00:32:22
【问题描述】:
我尝试了很长时间来了解段寄存器的内容 目的是什么?我都准备好知道这来自过去(8086) 那里只有 1 MB 的物理内存。但是CPU有 只有 16 位宽的地址寄存器。使用这 16 个地址位 您只能寻址 64K 字节。所以 1MByte 地址空间必须分开 分成每个 64K 大小的段。
在我看来,这似乎是过去的要求,那些工程师不愿解决某种有限的内存空间等问题。但我的问题是今天的段寄存器有什么优势?您将如何或在哪里以有用的方式使用它们? 如果您需要澄清,请发表评论。
【问题讨论】:
-
在受保护模式的操作系统(Windows、Linux、MacOS X)中,您根本不能使用段,因为描述符表不受您控制。
-
觉得聪明,因为你能理解所有可怕的东西?或者我猜是为平面地址 64 位操作系统编写引导加载程序。
-
@xmojmr 此外,OP 根本没有指定用户模式,因此内核模式也使用计数。分段用于我们都同意的目的,其中一部分是操作系统,一部分是应用程序。
标签: assembly x86 cpu-registers memory-segmentation