一、实模式
要讲GDT,就不得不讲实模式寻址方式,实模式下物理地址的寻址方式如下:
(1)寻址空间:实模式下,CPU的地址总线为20位,因此最大寻址空间为1MB。
(2)寻址方式:通过16位的段基址和16位的偏移地址组合来形成20位的物理地址。具体计算方式为:物理地址 = (段基址 << 4) + 偏移地址。其中,段基址由16位段寄存器(如CS、DS等)给出,偏移地址由机器指令操作数给出。
(3)段寄存器:实模式下,CPU有多个段寄存器(如CS、DS、SS、ES等),用于存储不同段的段基址。
(4)限制:尽管寻址空间为1MB,但由于历史原因,顶部的384KB通常用于特殊目的,因此实模式程序通常只能使用640KB的常规内存。
这种寻址方式使得CPU能够直接访问物理内存,但受限于地址总线的位数和段寄存器的容量。
二、保护模式
从80386开始,Intel家族的CPU进入32位时代。80386以后有了至少32位的地址线,所以寻址空间可以达到 4GB。所以使用16位寄存器的方法已经不够用了,这时需要新方法来提供更大的寻址能力。当然,保护模式的优点不仅仅在这一个方面。
如今我们有了32位寄存器,一个寄存器就可以寻址4GB的空间,是不是从此段值就被抛弃了呢?实际上并没有,新模式下的地址仍然用“SEG:OFFSET”这样的形式来表示,只不过保护模式下