、中斷向量寝 CPU响应中断后,如何得到中断 服务程序的入口地址(中断向量),转入 到中断服务程序?8086CPU通过建立 中断向量表的方法解决
三、中断向量表 CPU 响应中断后,如何得到中断 服务程序的入口地址 (中断向量),转入 到中断服务程序?8086CPU 通过建立 中断向量表的方法解决
类型255 CS 0000:03FFH IP 中断向 供用户定义的中断 (共224个) 量(中断服务 型32 0000:007FH 类型3 程序入口地 0000:007EH IP 保留的中断 址)在表中的 (共27个) 地址=中断 类型5 0000:0014H 000T溢出中断 类型号×4 类型4 0000:0010H 0000:000FH 断点中断 类型3 0000:000CH 专用的中断 非屏蔽中断 0000:000BH (共5个) 类型2 0000:0008H 00000单步中断 0000:0004H 类型1 0000:0003H 数为0中断 类型0 0000:0000H 中断向量表
中 断 向 量 (中断服务 程 序 入 口 地 址) 在表中的 地址 = 中断 类型号 × 4 中断向量表 溢出中断 0000 : 0014 H 0000 : 0013 H 0000 : 0010 H 0000 : 000F H 0000 : 000C H 0000 : 000B H 0000 : 0008 H 0000 : 0007 H 0000 : 0004 H 0000 : 0003 H 0000 : 0000 H 类型5 类型255 供用户定义的中断 (共224个) 0000 : 007 FH 0000 : 007 EH CS 0000 : 03 FFH IP CS IP CS IP CS IP CS IP CS IP CS IP 专用的中断 (共5个) 保留的中断 (共27个) 类型32 类型31 类型0 类型4 类型3 类型2 类型1 除数为 0 中断 非屏蔽中断 单步中断 断点中断
四、中断向量的装入 BIOS负责0~1FH共32个中断向 量的装入。用户若想装入自己的中断 向量到向量表中的,可用以下方法:
四、中断向量的装入 BIOS 负责0~1FH 共32个中断向 量的装入。用户若想装入自己的中断 向量到向量表中的,可用以下方法:
1.OS的令实中录交 假设类型号为60H的中断向量为 SEG INTR: OFFSET INTR。 CLI CLD MOV AX. O MOV ES. AX MOV DI 4*60H ;DI指向表中对应位置 MOV AX, OFFSET INTR;取偏移地址 STOSW ;AL→[DI,AH-→DI+ DI+2-DI MOV AX, SEG INTR;取段基址 STOSW STI
1. 用STOS 指令填空中断向量表 假设类型号为60H 的中断向量为 CLI CLD MOV AX, 0 MOV ES, AX MOV DI, 460H ; DI 指向表中对应位置 MOV AX, OFFSET_INTR ; 取偏移地址 STOSW ; AL[DI], AH[DI+1] ;DI+2DI MOV AX, SEG_INTR ; 取段基址 STOSW STI SEG_INTR: OFFSET_INTR
列0y指写中物应量 CLI MOV AX. OOH MOV ES. AX MOV BX,4*60H;BX指向表中对应位置 MOV AX, OFFSET INTR MOV ES:[BXl,AX;装入编程地址 MOV AX SEG INTR MOV ES:BX+2l,AX;装入段基址 方法1,2由用户直接操作中断向量表, 因此,要熟悉中断向量表的具体组织
2. 利用MOV 指令写入中断向量 CLI MOV AX, 00H MOV ES, AX MOV BX, 460H ; BX 指向表中对应位置 MOV AX, OFFSET_INTR MOV ES:[BX], AX ; 装入编程地址 MOV AX, SEG_INTR MOV ES:[BX+2], AX ; 装入段基址 方法1,2由用户直接操作中断向量表, 因此,要熟悉中断向量表的具体组织