2中断优先级顺序 表6.18086/8088CPU的中断优先权顺序 中断 优先级 除法出错、INTO、INTn 最高 INTR 单步 最低 概括的说:内部中断的优先级高于外部中断,外部中断 中NM中断的优先级高于ⅠNTR中断,单步执行中断优 先级最低
2.中断优先级顺序 概括的说:内部中断的优先级高于外部中断,外部中断 中NMI中断的优先级高于INTR中断,单步执行中断优 先级最低
3中断向量表 中断向量:中断服务程序的入口地址,包括段地址(存 放于高字单元)和偏移地址(存放于低字单元)。 中断向量表:存放中断向量的表格。位于内存空间的最 低地址(000H-3FFH),长度1KB,可容纳256类 中断向量(256×4=1024)。 中断向量在表中的存放位置=4*n
28 3 中断向量表 中断向量:中断服务程序的入口地址,包括段地址(存 放于高字单元)和偏移地址(存放于低字单元)。 中断向量表:存放中断向量的表格。位于内存空间的最 低地址(000H-3FFH),长度1KB,可容纳256类 中断向量(2564=1024)。 中断向量在表中的存放位置=4*n
8086/8088的中断向量表 0000类型O中断入口地址IP内容1 66e3 (除法出错)Cs内容 00004类型1中断入口地址 00007 (单步中断) 专用中断000。类型2中断入口地址 (5个))00008 ( NMD 用户不能修改000CL类型3中断入口地址 0000F (断点中断) 00010类型4中断入口地址 00013 (溢出中断) 00014类型5中断入口地址 系统保留中断(2个) 08H~OFH为8259A中断 不允许用户修改 lOH~1F为BIOS中断 0007F类型31中断入口圳址 00080类型32中断入口坤址 用户自定义中断(24个) 20H~3FH为DOS中断 可由用户使用 03FC类型253中断入口地址 29
29 00000H 00003H 00008H 0000BH 00004H 00007H 0000CH 0000FH 00010H 00013H 00014H 0007FH 00080H 003FCH I P内 容 CS内 容 类 型 0中 断 入 口 地 址 (除 法 出 错 ) … 专 用 中 断 ( 5个 ) 用 户 自 定 义 中 断 (224个 ) 系 统 保 留 中 断 (27个 ) 类 型 1中 断 入 口 地 址 (单 步 中 断 ) 类 型 2中 断 入 口 地 址 (NMI) 类 型 3中 断 入 口 地 址 (断 点 中 断 ) 类 型 4中 断 入 口 地 址 (溢 出 中 断 ) 类 型 5中 断 入 口 地 址 类 型 31中 断 入 口 地 址 类 型 32中 断 入 口 地 址 类 型 255中 断 入 口 地 址 … 8086/8088的中断向量表 08H~0FH为8259A中断 10H~1FH为BIOS中断 20H~3FH为DOS中断 用户不能修改 不允许用户修改 可由用户使用
4、中断处理过程 的获取 (1)对于除法中断、单步中断、不可屏蔽中断NMI,断点中 断和溢出中断,CPU分别自动提供中断类型号0~4。 (2)对于用户自己确定的软件中断INTn,类型号由n决定。 (3)对外部可屏蔽中断INTR,可用硬件电路设计产生。也可 用可编程中断控制器8259A获得中断类型号。 口获得中断类型码后,如何进入中断服务程序 n中断类型码乘以4,得中断向量表的向量首址指针 取中断向量:把向量表指针所指的4个连续字节的内容作为 中断服务程序的入口地址,分别送给IP和cS 按新的cS:IP指针执行中断服务程序
30 4、中断处理过程 ➢ 中断类型码的获取 (1) 对于除法中断、单步中断、不可屏蔽中断NMI,断点中 断和溢出中断,CPU分别自动提供中断类型号0~4。 (2) 对于用户自己确定的软件中断INT n,类型号由n决定。 (3) 对外部可屏蔽中断INTR,可用硬件电路设计产生。也可 用可编程中断控制器8259A获得中断类型号。 获得中断类型码后,如何进入中断服务程序 ◼ 中断类型码乘以4,得中断向量表的向量首址指针 ◼ 取中断向量:把向量表指针所指的4个连续字节的内容作为 中断服务程序的入口地址,分别送给IP和CS ◼ 按新的CS:IP指针执行中断服务程序
8086的中断付过程 完成当前指 (2) FLAGS入 有内部Y从指令中或内部) (3令TEMP=十F 中断吗 获得中断类型号 (4)□清IF、TF 有NM 中断吗 中断类型号点() (5cs、IP入相 中断处理稈F 有 INTRY 中断吗 IF=1? 从外部得刨 中断类型 有NMI> TF=1? Y中断类型号 TEMP= 中断服务 执行下一条指令 IP、CS出 FLAGS出 「返回断点 31
31 8086的中断过程 FLAGS 入 栈 N N N 完 成 当 前 指 令 有 内 部 中 断 吗 ? 从 指 令 中 或 内 部 获 得 中 断 类 型 号 从 外 部 得 到 中 断 类 型 号 TEMP=1? 令 TEMP= T F 调 中 断 处 理 程 序 Y Y Y 有 NMI 中 断 吗 ? 有 INTR 中 断 吗 ? T F= 1? 执 行 下 一 条 指 令 N N N N Y 中 断 类 型 号 2 Y I F= 1? 中 断 类 型 号 1 清 I F、 T F CS、 I P入 栈 返 回 断 点 FLAGS出 栈 I P、 CS出 栈 中 断 服 务 有 NMI? (1) (1) (1) (1) (2) (3) (4) (5) Y Y