GDT和GDTR

本文介绍了IA-32架构中GDT(全局描述符表)和GDTR(全局描述符表寄存器)的关系与结构。GDT包含段描述符,用于描述段信息,GDTR则存储GDT的基地址。在MBR中建立GDT和GDTR时,需要确定GDT的大小和基地址,然后依次填充GDT,并设置GDTR寄存器。
摘要由CSDN通过智能技术生成

GDTR和GDT

GDT和GDTR关系

       GDT是global descriptor table,全局描述符表,它是描述符组成的一张描述符表。描述符就是段描述符它用来描述一个段的信息,由8个字节组成(64bit),其中信息包括了段地址和偏移地址界限等,特权级等一些信息。
  GDTR中的r是register,表示的是用来存储GDT位置的寄存器,叫做全局描述符表寄存器。GDTR内部有48位,分为32位的线性地址和16位的边界。
  IA-32中地址线是32位宽,所以最大内存4GB。GDT一定是存储在内存里的,通过GDTR就可以找到GDT。那GDTR可以指向多少个GDT呢?我们来算一算,GDTR的偏移地址是16位最大寻址能力是2^16 B,而一个GDT是占用8B=2^3 B,所以最大可以存储2^13(8192)个GDT。
  两者的关系我理解是这样的:把GDTR理解为指针,GDT理解为指针指向的内存,要访问GDT就要通过GDTR,因为GDT是有标号的,所以要访问某个GDT只需从GDTR中获得基地址+标号*8即可。
在这里插入图片描述


关于图中为什么GDT画在底端的1M内存,因为GDT是保护模式下的机制,但是需要在进入保护模式之前就完成对GDT的初始化即在实模式下,众所周知实模式下只能访问1M内存,所以才有了途中的画法。

GDTR的结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值