中断程序设计等待中断串指令装入法伪指令装入法DOS调用法直接装入法一、中断向量表的建立方法8088的中断向量表向量号255的CS值用户中断(向量号255)3FCH向量号255的IP值……向量号2的CS值非屏蔽中断(向量号2)008H向量号2的IP值向量号1的CS值单步中断(向量号1)004H向量号1的IP值向量号0的CS值除法错中断(向量号0)000H向量号0的IP值利用STOSW指令将中服的段基址和偏移地址送入中断向量表。STOSW:(AX)ES:DI,根据DF修改DI例:设中断类型码为n,中服名称为INT_SEV1、串指令装入法CLI ;关中断MOVAX,0MOVES,AX ;置附加段基地址为0MOVDI,n*4 ;置附加段偏移地址到DIMOVAX,OFFSETINT_SEV;置中断程序首地址的;偏移量到AXCLD STOSW ;填偏移量到中断地址表MOVAX,SEGINT_SEV;置中断程序的段基地址到AXSTOSW ;填段基地址到中断地址表STI ;开中断2、伪指令装入法例:设中断类型码为n,n*4DWOFFSETINT_SEVDWSEGINT_SEVINT_TABENDS使用DOS功能调用的25H功能,从而将中服的入口地址置入中断向量表。要求: AL=中断类型号 DS:DX=中断服务程序首地址的段、偏移地址3、DOS调用法PUSHDS MOVAX,SEGINT_SEV ;段基地址送DS MOVDS,AX MOVDX,OFFSETINT_SEV;偏移地址送DX MOVAL,60H ;中断类型号送ALMOVAH,25H;(AH)功能号 INT21H ;功能调用POPDS注意:在PC机系统初始化时,有一部分中断例程已驻留在内存中。一般情况下,用户不应改变系统对这些中断的设置。可借用:程序中进行中断矢量的替换。3、DOS调用法(续)例:假设借用DOS系统的0CH中断,用户系统的中服入口地址为newint,则相应程序如下:;数据段:设置内存缓冲区,用于暂存DOS的中断矢量intoff dw? intseg dw?;主程序 movax,350ch;取出DOS的中断矢量,int21h;并送ES:BXmovintoff,bx;保存DOS的中断矢量movintseg,es获取中断向量(DOS功能调用INT21H)功能号:AH=35H入口参数:AL=中断向量号出口参数:ES:BX=中断向量(段地址:偏移地址)
中断服务程序 来自淘豆网www.taodocs.com转载请标明出处.