9.7 出错码(Error Code)

优质
小牛编辑
131浏览
2023-12-01

与某一个段相关的段的的异常的话,处理器为异常处理程序压入一个出错码到堆栈上(不管是子程序还是任务)。图9-7显示了出错码的格式。出错码的格式和选择子有点象。但是,出错码并不包含RPL字段,另外包含了2位不同的项:

1、 如果是一个程序外部的事件引起的异常,则处理器设置EXT位。

2、 如果出错码的索引部分指向了一个IDT中的门描述符,处理器设置I位。

如果I位没有设置,TI位指示了出错码是指向GDT(0值)还是指向LDT(值1)。余下的14位则是段选择子的高14位。一些情况下,在堆栈上的出错码是空的(NULL),也就是低字的所有位都是0。