9.3保护模式的寄存器模型保护模式的寄存器集与实模式的寄存器集相比,它增加了四个寄存器:全局描述符表寄存器GDTR、中断描述符表寄存器IDTR、局部描述符表寄存器LDTR和任务寄存器TR。另外,一些寄存器的功能得到了扩展。例如,指令指针寄存器现在称为EIP,长度为32位;标志寄存器(EFLAGS)的更多位得到了利用;另外,所有四个控制寄存器CRo~CR,都具有了相应的功能
9.3 保护模式的寄存器模型 ◼ 保护模式的寄存器集与实模式的寄存器集相比,它增 加了四个寄存器:全局描述符表寄存器GDTR、中断 描述符表寄存器IDTR、局部描述符表寄存器LDTR和 任务寄存器TR。 ◼ 另外,一些寄存器的功能得到了扩展。例如,指令指 针寄存器现在称为EIP,长度为32位;标志寄存器 (EFLAGS)的更多位得到了利用;另外,所有四个控制 寄存器CR0 ~CR3都具有了相应的功能
物理存储器9.3.1全局描述符表寄存器81928191(GDTR)全局描述符表寄存器819001615474039全局描述符表限长基址31-24基址23-0(GDT)321图9.3全局描述符表机制
9.3.1全局描述符表寄存器 47 40 39 16 15 0 图9.3 全局描述符表机制 全局描述符表寄存器(GDTR) 物理存储器
GDTR是80386DX中的48位寄存器。该寄存器的低2个字节在图9.3中标为限长(LIMIT),它规定了GDT按字节算的大小。限长的值要比表的实际大小小1。例如,如果限长等于00FFH,则表的大小为256个字节。由于限长字段为16位,所以GDT最大可达65536字节长。GDTR的高4个字节,在图9.3中标为基址(BASE),用以指示物理存储器中GDT的开始位置。该32位基址允许GDT定位在80386DX线性地址空间的任何地方
◼ GDTR是80386DX中的48位寄存器。该寄存器的低2个 字节在图9.3中标为限长(LIMIT),它规定了GDT按字 节算的大小。 ◼ 限长的值要比表的实际大小小1。例如,如果限长等于 00FFH,则表的大小为256个字节。由于限长字段为16 位,所以GDT最大可达65536字节长。 ◼ GDTR的高4个字节,在图9.3中标为基址(BASE),用 以指示物理存储器中GDT的开始位置。该32位基址允 许GDT定位在80386DX线性地址空间的任何地方
例9.2如果全局描述符表寄存器(GDTR)中的限长和基址分别为0FFFH和00100000H,则描述符表的起始地址是多少?表按字节算有多大?表的结束地址是多少?
例9.2 如果全局描述符表寄存器(GDTR)中的限长和基址分别为 0FFFH和00100000H,则描述符表的起始地址是多少? 表 按字节算有多大?表的结束地址是多少?
解全局描述符表在物理存储器中的起始地址由GDTR中的基址字段给出,所以,全局描述符表的起始地址为:GDTsTART=00100000H。限长是表尾到表头的偏移量,所以,表的结束地址为:GDTEND=00100000H+0FFFH=00100FFFH最后,表的大小等于限长的值加1:GDTsIZE=0FFFH+1=4096字节。■80386DX在从实模式转到保护模式之前必须将基址和限长的值装入GDTR,80386DX的系统控制指令(特权指令)集提供了这一类指令
解 全局描述符表在物理存储器中的起始地址由GDTR中 的基址字段给出,所以,全局描述符表的起始地址为: GDTSTART=00100000H。 限长是表尾到表头的偏移量,所以,表的结束地址为: GDTEND =00100000H+0FFFH=00100FFFH 最后,表的大小等于限长的值加1: GDTSIZE=0FFFH+1=4096字节。 ◼ 80386 DX在从实模式转到保护模式之前必须将基址和限 长的值装入GDTR,80386DX的系统控制指令(特权指令) 集提供了这一类指令