9.3.2中断描述符表寄存器同全局描述符表寄存器GDTR一样,中断描述符表寄存器IDTR也在物理存储器中定义了一个表。但是该表包含的是中断描述符而不是段描述符,所以该表称作中断描述符表(IDT)。中断描述符表寄存器和中断描述符表可以提供一种机制,通过这种机制可将程序控制转给中断并执行中断服务程序
9.3.2 中断描述符表寄存器 ◼ 同全局描述符表寄存器GDTR一样,中断描述符表寄存 器IDTR也在物理存储器中定义了一个表。但是该表包 含的是中断描述符而不是段描述符,所以该表称作中断 描述符表(IDT)。 ◼ 中断描述符表寄存器和中断描述符表可以提供一种机制, 通过这种机制可将程序控制转给中断并执行中断服务程 序
物理存储器256255(IDTR)中断描述符表寄存器254Qe.16150474039中断描述表基址31-24限长基址23-0(IDT)321图9.4中断描述符表机制
47 40 39 16 15 0 图9.4 中断描述符表机制 中断描述符表寄存器(IDTR) 物理存储器
DT中的描述符称为中断门,中断门提供了一种将程序控制转给中断服务程序入口的手段。每个中断门8字节长,它包含中断服务程序的起始地址和属性信息。中断描述符表也可放在80386DX32位线性地址空间中的任何地方。同GDTR一样,IDTR必须在80386DX进入保护模式之前装入。IDTR的装入和保存由系统中专门的特权指令来完成。一且表地址设定,那么进入保护模式之后一般就不允许改动
◼ IDT中的描述符称为中断门,中断门提供了一种将程 序控制转给中断服务程序入口的手段。每个中断门8字 节长,它包含中断服务程序的起始地址和属性信息。 ◼ 中断描述符表也可放在80386DX 32位线性地址空间中 的任何地方。同GDTR一样,IDTR必须在80386DX进 入保护模式之前装入。 ◼ IDTR的装入和保存由系统中专门的特权指令来完成。 一旦表地址设定,那么进入保护模式之后一般就不允 许改动
例9.3如果中断描述符表的基址为00011000H,限长为01FFH,那么最后一个描述符的地址范围是什么?解从给定的基址和限长可以得到IDTsTART=00011000H,IDTEND=000111FFH。表中最后一个描述符占用8个字节内存,地址范围从000111F8H~000111FFH
例9.3 如果中断描述符表的基址为00011000H,限长为 01FFH,那么最后一个描述符的地址范围是什么? 解 从给定的基址和限长可以得到IDTSTART=00011000H, IDTEND =000111FFH。表中最后一个描述符占用8个字节 内存,地址范围从000111F8H~000111FFH
9.3.3局部描述符表寄存器如图9.5(a)所示,每个任务除了可访问全局描述符表外还可访问它自己的专用描述符表。该专用描述符表称为局部描述符表(LDT),它定义了任务所使用的局部存储器地址空间。LDT中的段描述符可用来访问当前任务存储器段中的代码和数据。由于每项任务都有它自已的存储器段,因此保护模式的软件系统可能会包含许多局部描述符表。图9.5(a)中定义了LDT。~LDTn
9.3.3局部描述符表寄存器 ◼ 如图 9.5(a)所示,每个任务除了可访问全局描述符表外 还可访问它自己的专用描述符表。该专用描述符表称 为局部描述符表(LDT),它定义了任务所使用的局部 存储器地址空间。 ◼ LDT中的段描述符可用来访问当前任务存储器段中的 代码和数据。由于每项任务都有它自己的存储器段, 因此保护模式的软件系统可能会包含许多局部描述符 表。图 9.5(a)中定义了LDT0 ~LDTn