80386的中断和异常的各种转移途径小结
发布: 2008-6-26 22:50 | 作者: admin | 查看: 2次
80386的中断和异常的各种转移途径小结: 如上所述,中断/异常可引起任务切换、任务内特权级变换和任务内无特权级变换的转移。至此,任务切换、任务内特权级变换和任务内无特权级变换转移的各种途径已全部列出。1.任务切换的途径 任务之间切换的途径如下图所示。段间转移指令JMP、段间调用指令CALL、软中断指令INT和中断返回指令IRET引起的任务切换是主动的任务切换,或者说是当前任务要求的任务切换。中断和异常(不包括软中断指令)引起的任务切换是被动的任务切换,或者说是不受当前任务左右的任务切换。
伴随着任务切换,特权级当然可能发生变换。只要任务切换发生,这种特权级的变换取决于目标任务,而与当前任务无关。2.任务内特权级变换的途径 任务内特权级变换的途径如下图所示。图中特权级m是外层特权级,特权级n是内层特权级。通常RET与CALL对应;IRET与INT、中断/异常对应。但也可以通过在堆栈中建立合适环境的手段,使RET或IRET从内层特权级变换到外层特权级。
3.任务内相同特权级转移的途径 任务内相同特权级转移的途径如下图所示。由图可见,任务内相同特权级转移的途径多种多样。












