中断和异常

      在保护模式下,中断机制发生了很大的变化,原来的中断向量表已经被IDT所代替,实模式下使用的BIOS中断在保护模式下已经不能用了。联系调用门,中断门和调用门的作用机理其实是一样的,只不过使用调用门时使用call指令,而这里我们使用int 指令。

      中断,又处理其外部的事件引起,比如外设请求,软件通过执行int指令等。异常,则通常是在处理器执行指令的过程中检测到错误引起的。中断和异常不可以简单的按照硬件或者软件,引起他们的源进行划分,可以理解为,中段和异常没有严格的界限。

 

又硬件自动实现的中断响应和异常处理的步骤:

中断向量好——>IDT中取得对应的门描述符——>从描述符中分离出选择子——>选择子指向处理程序在GDT或LDT中的描述符——>从GDT或LDT描述符中分离出由选择子和偏移组成的处理程序地址——>指向处理程序

 

      如果中断向量号所指示的门描述符是任务门描述符,那摩控制转移到一个作为独立的任务方式出现的处理程序。对中断的响应和异常的处理,80386允许通过使用中断门或者陷阱门实现由当前任务之内的一个过程进行处理;也允许通过使用任务门实现由另一个任务进行处理。

      中断返回指令IRET用于从中断或者异常处理程序的返回。指令的执行根据任务嵌套标志NT是否为1,分两种情况:1、NT为1,表示是嵌套任务的返回,当前TSS中的链接字段保存由前一任务的TSS的选择子,取出该选择子,进行任务切换就完成了返回;2、NT为0,表示当前任务内的返回,这种情形在通过中断门或者陷阱门转入的中断或异常处理程序返回时出现。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章