首先我们简单说一下什么是保护模式。保护模式是指把各种程序指定一个特权极。特权极低的程序不能调用特权极高的子程序。比如HLT这样的只能在系统核心程序使用的指令不能被外部程序调用。这样有利于保护操作系统以及一些子系统等等。但同时也禁止了用户程序从操作系统得到合理的服务,因此设置了一些入口点,提供给特权极低的程序。访问入口点要通过调用门来实现。每一个调用门对应的是一个描述符。其中包含了被调用程序的虚拟入口地址。下面我们来看保护模式下的中断操作。
  保护模式下的中断操作与实模式基本相同,只是在中断向量表上有所不同,保护模式使用256个存储在中断描述符表(IDT)中的中断描述符取代中断向量,中断描述表的长度为256×8(2K)字节,每个描述符由8个字节表示,这与中断向量用4个字节表示是有所不同的。中断描述符表的首地址和大小也不像中断向量表一样固定在第0段,而是由由中断描述符表寄存器(IDTR)提供,它可以定位在存储器的任意地址。在保护模式下,微处理器在中断应答周期访问的是中断描述符表而不是中断向量表。


  图3-1 中断描述符的结构

  比较中断向量和中断描述符,我们不难发现可以将实模式下的中断向量转换成保护模式下的中断描述符。只要将中断向量的中断服务程序地址取出转换成32位的偏移地址,并且将它存储在中断描述符中,便形成中断描述符。这样中断向量表就可以变为中断描述符表。按照习惯来讲,中断段描述符通常放在全局描述符表中,存储器的前1MB被定义为中断段。