设置和获取中断向量,很清楚嗷

时间:2021-03-01 01:09:24

在系统程序或应用程序由于某种需要而提供新的中断处理程序时,就要设置对应的中断向量,使其指向新的中断处理程序。

1.设置中断向量
设置中断向量一般有两种方法:直接写入法和使用 DOS 调用法。
方法1:直接写入法用 MOV 指令将中断向量直接写入中断向量表,下面是一个直接写入法的例子。
例使用直接写入法设置中断向量

 MOV AX ,0            
 MOV DS , AX
 MOV BX , n *4
 CLI
 MOV WORD PTR [ BX ], OFFSET INTHAND 
 MOV WORD PTR [ BX +2], SEG INTHAND
 STI

方法2:使用 DOS 功能调用法使用25H号 DOS 功能调用可以设置中断向量,出口参数如下:
预置: AH =25H
AL =中断类型号
DS : DX =中断向量
执行:INT 21H

功能:将指定的中断向量写入中断向量表。

例使用 DOS 功能调用设置中断向量。

          INTHAND :
          MOV AX , SEG INTHAND 
          MOV DS , AX 
          MOV DX , OFFSET INTHAND 
          MOV AH ,25H
          MOV AL , n 
          INT 21H

2.获取中断向量
获取中断向量也有两种常用方法:
直接读取法和使用 DOS 功能调用法。
方法1:直接读取法利用 MOV 指令直接读取中断向量。
例利用直接读取法读取 n 号中断向量,并保存在双字变量 OLDVECTOR 中:

             XOR AX , AX 
             MOV ES , AX
             MOV AX , ES :[ n *4]
             MOV WORD PTR OLDVECTOR , AX 
             MOV AX , ES :[ n *4+2]
             MOV WORD PTR OLDVECTOR +2, AX

方法2:使用 DOS 功能调用法利用35H号 DOS 功能调用可以取得指定中断号的中断向量,其出入口参数如下:
预置: AL 中断类型号
执行: INT 21H
功能:读取指定中断的中断向量,其中:
ES =中断处理程序的段地址
BX =中断处理程序的偏移地址
例7-4使用 DOS 功能调用取得 n 号中断的中断向量

                  MOV AH ,35H 
                  MOV AL , n 
                  INT 21H
                  MOV WORD PTR OLDVECTOR , ES
                  MOV WORD PTR OLDVECTOR , BX

设置和获取中断向量,很清楚嗷