使用段寄存器(今天)有什么好处?

时间:2014-11-11 12:44:23

标签: assembly x86 cpu-registers memory-segmentation

我正在尝试一段时间来了解该段注册的内容 目的是什么?我已经准备好知道这来自过去(8086) 那里只有1 MB的物理内存。但是CPU已经有了 只有16位宽的地址寄存器。使用这16个地址位 你只能解决64K字节。因此1MByte地址空间必须分开 分为64K大小的段。

在我看来,这是过去的要求,那些工程师在某种程度上限制了有限的存储空间等工作。但我的问题是今天段寄存器的优势是什么?您如何以及在何处使用它们以有用的方式注册? 如果你需要澄清只是评论。

2 个答案:

答案 0 :(得分:3)

阅读关于the Flat Model

今天的段寄存器主要用作向后兼容的遗产(@Jester提到的FS-GS除外)

答案 1 :(得分:2)

可以说,x86-64长模式是“今天”的技术。大多数情况下,经典分段是不存在的,只有FSGS用于实际目的。 FS通常用于用户模式下的各种线程本地和系统数据,而GS用于内核模式。后一种用法由SWAPGS指令支持。