Operating system 内存段和段寄存器

Operating system 内存段和段寄存器,operating-system,Operating System,我不太理解内存分割,如果我们有1MB的内存,那么内存分割就变成64KB,对吗 那么,每个段寄存器(CS、DS、SS、ES)是否都有特定的段且不能更改 帮助理解问题的图像 我想你指的是旧的 段寄存器中的值并不是完全静态的。我们的想法是在x86中有16位的体系结构地址空间,但这是非常有限的(64KB),而物理地址空间只有20位。典型的地址是16位,但段寄存器中的地址是20位地址中最重要的16位。这意味着它们必须存在于2^4=16位边界上。然后,硬件将假定段寄存器是一个20位的基址,而另一个地址(例如

我不太理解内存分割,如果我们有1MB的内存,那么内存分割就变成64KB,对吗

那么,每个段寄存器(CS、DS、SS、ES)是否都有特定的段且不能更改

帮助理解问题的图像


我想你指的是旧的

段寄存器中的值并不是完全静态的。我们的想法是在x86中有16位的体系结构地址空间,但这是非常有限的(64KB),而物理地址空间只有20位。典型的地址是16位,但段寄存器中的地址是20位地址中最重要的16位。这意味着它们必须存在于2^4=16位边界上。然后,硬件将假定段寄存器是一个20位的基址,而另一个地址(例如指令的地址)被视为偏移量


编辑:您可能要问的一件事是,这些段是否相互排斥。这些片段可以部分或完全重叠。这使得它们非常强大,也非常危险。

另一种思考方式是地址是(%segment\u reg