mirror of
https://github.com/MintCN/linux-insides-zh.git
synced 2026-04-25 03:01:26 +08:00
Update Booting/linux-bootstrap-2.md
This commit is contained in:
@@ -45,13 +45,13 @@ PhysicalAddress = Segment * 16 + Offset
|
||||
|
||||
在保护模式中,内存段的定义和实模式完全不同。在保护模式中,每个内存段不再是64K大小,段的大小和起始位置是通过一个叫做`段描述符`的数据结构进行描述。所有内存段的段描述符存储在一个叫做`全局描述符表`(GDT)的内存结构中。
|
||||
|
||||
`全局描述符表`这个内存数据结构在内存中的位置并不是固定的,它的地址保存在一个特殊寄存器`GDTR`中。在后面的章节中,我们将在Linux内核代码中看到全局描述符表的地址是如何被保存到`GDTR`中的。具体的汇编代码看起来是这样的:
|
||||
`全局描述符表`这个内存数据结构在内存中的位置并不是固定的,它的地址保存在一个特殊寄存器 `GDTR` 中。在后面的章节中,我们将在Linux内核代码中看到全局描述符表的地址是如何被保存到 `GDTR` 中的。具体的汇编代码看起来是这样的:
|
||||
|
||||
```assembly
|
||||
lgdt gdt
|
||||
```
|
||||
|
||||
`lgdt`汇编代码将把全局描述符表的基地址和大小保存到`GDTR`寄存器中。`GRTD`是一个48位的寄存器,这个寄存器中的保存了2部分的内容:
|
||||
`lgdt` 汇编代码将把全局描述符表的基地址和大小保存到`GDTR`寄存器中。`GRTD`是一个48位的寄存器,这个寄存器中的保存了2部分的内容:
|
||||
|
||||
* 全局描述符表的大小 (16位)
|
||||
* 全局描述符表的基址 (32位)
|
||||
|
||||
Reference in New Issue
Block a user