11.6.3 中断过程
以一条中断指令INT n为例,由于中断描述符表IDT的线性基地址与表的大小由IDTR的base字段和limit字段指明,所以根据中断类型号计算出base
+ n * 8,即是该中断IDT项的地址,取出IDT项中的门描述符,经过访问权检验,并将选择器值(selector)送入CS,偏移量(offset)送入EIP,即获得了陷阱处理子程序的入口地址(动画)。
装入和存储IDTR的指令是LIDT和SIDT。这两条指令只能由当前特权级为0的过程(一般为操作系统)使用,一般应用程序不能设置和保存IDTR。
格式:LIDT mem ;将IDT的基地址和段限装入IDTR
格式:SIDT mem ;将IDTR的段限部分和线性基地址写入
在IDT相应的项中设置中断门、陷阱门和任务门的工作一般由操作系统完成,但相关的服务接口目前还未形成统一标准,有的内部调用随操作系统(如DOS、Windows)及其不同版本变动很大,调用时应加以小心。
|