《工学微型计算机原理与接口技术PPT课件第七章》由会员分享,可在线阅读,更多相关《工学微型计算机原理与接口技术PPT课件第七章(43页珍藏版)》请在金锄头文库上搜索。
1、第七章第七章 中断技术中断技术微机原理与接口技术精品课程微机原理与接口技术精品课程INT0INT1INT4INT3INT2断断点点中中断断溢溢出出中中断断第二章 中断部分复习CPU硬件中断信号脚:硬件中断信号脚:第第17脚脚 非屏蔽中断请求非屏蔽中断请求第第18脚脚 可屏蔽中断请求可屏蔽中断请求第第24脚脚 可屏蔽中断响应可屏蔽中断响应弄清几个概念:弄清几个概念: 1.中断分类概念中断分类概念 2.中断向量表概念中断向量表概念 3.中断服务子程序的执行机制概念中断服务子程序的执行机制概念8259A接口芯片接口芯片2微机原理与接口技术精品课程取一条指令执行指令指令执行完?有中断请求?取中断类型号
2、类型号类型号4 获中断向量获中断向量IF=0CS:IP入栈进入中断处理NNYY7.1 中断的概念中断的概念可屏蔽中断可屏蔽中断不可屏蔽中断不可屏蔽中断中断的分类中断的分类中断响应过程中断响应过程中断处理过程中断处理过程保存现场开中断执行中断服务关中断恢复现场开中断返回断点外部中断外部中断内部中断内部中断软件中断:软件中断: INT N调试中断:单步,断点调试中断:单步,断点运算错误运算错误中断:中断:除法错误,发生益处除法错误,发生益处3微机原理与接口技术精品课程优先级处理办法优先级处理办法1:硬件排队电路法:硬件排队电路法带多个中断请求输入端的带多个中断请求输入端的CPU,51系列单片机便系
3、列单片机便是如此。这些电路一般在是如此。这些电路一般在CPU或单片机的内部。或单片机的内部。要求:要求:下面的中下面的中断请求信号可以断请求信号可以有多个,上面的有多个,上面的中断请求信号只中断请求信号只能有一个有效。能有一个有效。注:中断优先级的实现4微机原理与接口技术精品课程串行排队链电路(菊花链)硬件查询线路串行排队链电路(菊花链)硬件查询线路 注:注:CPU只有一个中断请求端的情况。只有一个中断请求端的情况。特点:此接口电路除完成外设的中断请求外,还能在特点:此接口电路除完成外设的中断请求外,还能在CPU中断中断 响应时给数据总线发去相应的中断号。响应时给数据总线发去相应的中断号。缺点
4、:缺点:此接口电路的中断号是硬件生成的,改动不方便,不如可编程接口。此接口电路的中断号是硬件生成的,改动不方便,不如可编程接口。优先级处理办法优先级处理办法2 2:5微机原理与接口技术精品课程软件查询法软件查询法优先级处理办法优先级处理办法3 3:说明:按此思路设计的说明:按此思路设计的CPU,不存在中断向量表结构,也不,不存在中断向量表结构,也不存在存在“中断响应管脚中断响应管脚”,中断服务入口有一个固定的地址,中断服务入口有一个固定的地址,在此地址处编写软件查询程序。在此地址处编写软件查询程序。注:优先级由编程人定注:优先级由编程人定查询端口号6微机原理与接口技术精品课程查询端口号为查询端
5、口号为20H的中断请求寄存器的中断请求寄存器的状态的状态7微机原理与接口技术精品课程软件实现优先级编程如下:软件实现优先级编程如下:IN AL,20H;输入中断请求寄存器的内容TEST AL,80H;为7号外设提出中断吗?(1000 0000B)JZ ERR;为7号外设服务TEST AL,40H;为6号外设提出中断吗?(0100 0000B)JZ DISS;为6号外设服务 : 8微机原理与接口技术精品课程优先级处理办法优先级处理办法4:专用芯片:专用芯片8259A连接连接CPU的中断请求线的中断请求线可扩展可扩展8个外部中断个外部中断源源 连接连接CPU的中断响应线的中断响应线注:其他管脚要解
6、决:注:其他管脚要解决: 可编程的初始化问题可编程的初始化问题 中断源的再扩展问题中断源的再扩展问题返回29微机原理与接口技术精品课程第二节 8086/8088的中断系统 注:INT 0 INT 4 为系统专用中断号10微机原理与接口技术精品课程11微机原理与接口技术精品课程CPU的内中断的内中断CPU的外中断的外中断中断分类中断分类软件中断软件中断陷阱中断陷阱中断不可屏蔽中断不可屏蔽中断NMI(Nonmaskable interrupt) N=2可屏蔽中断可屏蔽中断INTR(Interrupt requestion) N5断点中断断点中断N=3溢出中断溢出中断N=4指令中断指令中断N5除法错
7、中断除法错中断N=0单步中断单步中断N=180888086CPUCPU将存储器将存储器00000H003FFH区域用于存放中断向量(即区域用于存放中断向量(即中断服务程序入口地址中断服务程序入口地址) ) ,此区域共有,此区域共有1024个字节单元,最多可容纳个字节单元,最多可容纳256个中断向量。个中断向量。 中断向量指针与中断类型号中断向量指针与中断类型号 中断向量指针中断向量指针 = = 中断类型号中断类型号* *4 4中断向量中断向量 = = (中断向量指针)(中断向量指针)12微机原理与接口技术精品课程 创建中断向量表:中断向量的装入创建中断向量表:中断向量的装入有三种方法:有三种方
8、法:1、 直接利用直接利用MOV指令装入指令装入 2、 利用串操作指令装入利用串操作指令装入 3、 利用利用DOS功能调用装入(软中断)功能调用装入(软中断)例如,假设中断类型号为例如,假设中断类型号为60H无人使用,现在此放置一无人使用,现在此放置一条中断向量,已知相应的中断服务子程序的段基址是条中断向量,已知相应的中断服务子程序的段基址是SEG_INTR,偏移地址是,偏移地址是OFFSET_INTR(006DH),下面用第一种方法创建中断向量表:,下面用第一种方法创建中断向量表: 13微机原理与接口技术精品课程方法方法1 : 直接利用直接利用MOV指令装入指令装入 :CLI ;关中断(关中
9、断(IF=0) MOV BX,60H 4 ;中断号;中断号4获得中断向量首地址获得中断向量首地址MOV AX,006DH ;取中断服务程序偏移地址(有效地址);取中断服务程序偏移地址(有效地址)MOV BX,AX ;先装入偏移地址;先装入偏移地址MOV BX+2,CS;再装入段基址,即中断服务子程序;再装入段基址,即中断服务子程序 ;在此代码段中。;在此代码段中。STI ;IF=1,开中断,开中断 :例如,假设中断类型号为例如,假设中断类型号为60H无人使用,现在此放置一无人使用,现在此放置一条中断向量,已知相应的中断服务子程序的段基址是条中断向量,已知相应的中断服务子程序的段基址是SEG_I
10、NTR,偏移地址是,偏移地址是OFFSET_INTR(006DH) 编程如下:编程如下:14微机原理与接口技术精品课程三、计算机中断响应过程三、计算机中断响应过程第一步:获得中断类型号;第一步:获得中断类型号;第二步:保护断点并关中断;第二步:保护断点并关中断;第三步:从中断向量表中提取中断向量,转入中断服务程序。第三步:从中断向量表中提取中断向量,转入中断服务程序。 关于中断类型号的获得,有三种情况:关于中断类型号的获得,有三种情况: 1、对专用中断(中断号、对专用中断(中断号0 4),中断类型号由),中断类型号由CPU自动自动 生成;生成; 2、对指令中断、对指令中断 INT N ,中断类
11、型号,中断类型号N从指令获得;从指令获得; 3、对外部可屏蔽中断,、对外部可屏蔽中断,CPU获得中断类型号的过程比较获得中断类型号的过程比较 复杂。见下页复杂。见下页15微机原理与接口技术精品课程CPU中断中断接口接口D0 D7中断请求中断请求中断相应中断相应第一个总线周期第一个总线周期CPU送中断响应信号送中断响应信号INTA第二个总线周期中断接口送中断类型号第二个总线周期中断接口送中断类型号INTAINTR客户中断请求客户中断请求客户中断请求16微机原理与接口技术精品课程四、各类中断的优先级四、各类中断的优先级17微机原理与接口技术精品课程第三节第三节 可编程中断控制器可编程中断控制器In
12、tel 8259A 8259A应具备下列四项功能:应具备下列四项功能: 1、中断请求扩展功能、中断请求扩展功能 2、中断优先级管理功能、中断优先级管理功能 3、中断类型号的写入和自动上传功能、中断类型号的写入和自动上传功能 4、可编程功能、可编程功能18微机原理与接口技术精品课程可编程中断控制器可编程中断控制器8259A内部结构内部结构8259A芯片引脚芯片引脚记录当前记录当前正执行的正执行的中断中断IRi返回37返回32返回24返回30返回219微机原理与接口技术精品课程8259A的读写操作的读写操作I/O端口地址端口地址 单板机8259A初始化命令字:初始化命令字: ICW1、 ICW2、
13、 ICW3、 ICW4 8259A操作命令字:操作命令字: OCW1、 OCW2、 OCW3难点:两个地址难点:两个地址(一个偶地址和一个奇地址一个偶地址和一个奇地址),但要写进这么多,但要写进这么多 命令字!借助了可编程芯片的内部逻辑管理。命令字!借助了可编程芯片的内部逻辑管理。20微机原理与接口技术精品课程1 初始化命令字初始化命令字ICW1例:若例:若8259A的端口地址为的端口地址为20H、21H,采用电平触发,单片使用,采用电平触发,单片使用, 需要需要ICW4,则,则ICW1 =1BH,将,将ICW1送入送入8259A的程序段为:的程序段为:MOVAL,1BHOUT 20H,AL借
14、助于标志位,一个地借助于标志位,一个地址就可存两个命令字址就可存两个命令字!决定是否决定是否写写ICW4决定是否决定是否写写ICW3返回3721微机原理与接口技术精品课程2 初始化命令字初始化命令字ICW 2例:已知原计算机系统中断向量表例:已知原计算机系统中断向量表60H以后为空,请设置以后为空,请设置 命令字命令字ICW2.解:解: ICW2的低三位的低三位000 111由由8259A自动分配给外设中断自动分配给外设中断 请求端请求端IR0 IR7, 所以高所以高5位应定位位应定位01100比较合理。比较合理。MOVAL,01100000B OUT 21H,AL ;假定;假定8259A地址
15、为地址为20H, 21H ;问:;问:MOV, 01100111B行吗?行吗?返回3722微机原理与接口技术精品课程3 初始化命令字初始化命令字ICW 3 ICW3称为主片称为主片/从片标志命令字,必须写到从片标志命令字,必须写到8259A的奇的奇地址端口(即地址端口(即A01)中。仅在)中。仅在8259A级联(级联(ICW1中中D10)时使用,且时使用,且CPU送给主送给主8259A和从和从8259A的的ICW3格式是不相格式是不相同的。同的。 例:一片例:一片8259A 级联级联8片从片,需要写片从片,需要写9次次ICW3, 如何写?如何写?23微机原理与接口技术精品课程4 初始化命令字初
16、始化命令字ICW 4 ICW4方式控制方式控制ICW4仅在仅在ICW1中的中的D0l时才有必要设置,否则不写。时才有必要设置,否则不写。 说明:说明:D4位位特殊特殊指级联时主片用指级联时主片用“特殊特殊”,其它都,其它都用用“非特殊非特殊”。D3 D2位位,说明,说明与系统总线是否与系统总线是否用缓冲器(大系用缓冲器(大系统的总线驱动)统的总线驱动)相连。相连。D1位位一般取一般取0.为为了实现有优先级了实现有优先级要求的中断嵌套,要求的中断嵌套,8259A中有一个中有一个现行服务寄存器现行服务寄存器ISR ,自动,自动EOI方式,即一进入中断,方式,即一进入中断,8259A 即将即将ISR
17、的中断服务位的中断服务位ISRi请零,可能造成发生嵌套的优先级请零,可能造成发生嵌套的优先级混乱。除非保证不发生嵌套时才用自动混乱。除非保证不发生嵌套时才用自动EOI方式。方式。24微机原理与接口技术精品课程例:例:假设假设8259A地址为地址为20H 21H,与总线之间采用缓冲器连接,与总线之间采用缓冲器连接,非自动结束方式,只用一片非自动结束方式,只用一片8259A,普通完全嵌套,用,普通完全嵌套,用8088。解:解: MOV AL , 0000 1101B OUT 21H , AL25微机原理与接口技术精品课程8259A的初始化的初始化 8259A初始化时如下几点值得注意:初始化时如下几
18、点值得注意:(1)ICW1必须写入偶地址端口(必须写入偶地址端口(A00),), 而且要最先写入。而且要最先写入。 命令字命令字ICW3、 ICW4的写入受的写入受ICW1操纵操纵。 ICW2ICW4写入奇地址端口(写入奇地址端口(A01)。)。 (2) ICW1ICW4的写入次序是固定的,的写入次序是固定的, 不可颠倒。不可颠倒。(3)在单片)在单片8259A所构成的中断系统中,所构成的中断系统中,8259A的初始化仅需设置的初始化仅需设置ICW1、ICW2和和ICW4,在多片,在多片8259A级联时,主片和从片级联时,主片和从片8259A除除ICW1、ICW2和和ICW4外还必须设外还必须
19、设置置ICW3,而且主片和从片,而且主片和从片8259A的的ICW3格格式是不相同的。式是不相同的。26微机原理与接口技术精品课程例例: 现有现有8086微机系统,其中断控制单元由单片微机系统,其中断控制单元由单片8259A构成。构成。8259A的触发方式是边沿触发,中断类型号为的触发方式是边沿触发,中断类型号为08H0FH,非,非自动结束方式,全嵌套方式,非缓冲方式。自动结束方式,全嵌套方式,非缓冲方式。8259A的地址为的地址为0DAH和和0DBH。试编写该片。试编写该片8259A的初始化程序。的初始化程序。解:解:27微机原理与接口技术精品课程操作命令字:操作命令字:OCW1, OCW2
20、, OCW3 1、中断屏蔽命令字、中断屏蔽命令字OCW1例:开放中断IR0 IR1 IR2 IR3 其它中断请求端 均屏蔽。假 定8259A的片地址为 : 20H 21H 解:MOV AL , 0F0H OUT 21H , AL返回3628微机原理与接口技术精品课程2 . 中断模式设置命令字 OCW2说明:一般使用ICW4的的非自动非自动EOI方式,用方式,用OCW2的普通的普通EOI方式结束中断服方式结束中断服务子程序。注意:务子程序。注意: ICW4用用在主程序的初始化中,而在主程序的初始化中,而OCW2用在中断服务子程序中断服务子程序中使用。中使用。R=0为固定优先级;为固定优先级;IR
21、0最高最高R=1为轮换优先级。为轮换优先级。 通常初始化高通常初始化高4位:位:0010例:中断服务子程序片断: . . MOV AL , 20H ;20H 21H 22H 分别为IR0 IR1 IR2 OUT 0DAH , AL ; 8259A的偶地址0DAH。 IRET ;CPU平台上的中断返回,恢复上层程序断口。返回45页注:外中断结束前需要 两个关键指令 : OUT 0DAH , AL ;接口片处理 IRET ;计算机系统处理29微机原理与接口技术精品课程3、 OCW3 例:编一段了解ISR状态的程序片断,假定8259A的地址为20H 21H . : MOV AL , 00001111
22、B OUT 20H , AL ; 写OCW3 NOP IN AL , 20H ;读ISR(注意端口A0=0)IRRISR30微机原理与接口技术精品课程A00X X X 1 LTIM X SNGL IC4ICW11T7 T6 T5 T4 T3 X X XICW21S7 S6 S5 S4 S3 S2 S1 S0主ICW31 X X X X X ID2 ID1 ID0从ICW310 0 0 SFNM BUF M/S AEOI 1ICW41M7 M6 M5 M4 M3 M2 M1 M0OCW10R SL EOI 0 0 L2 L1 L0 OCW2 初始化控制字操作控制字ICW1ICW2SGNL=1 主
23、片?主ICW3从ICW3IC4=1ICW4结束YNNYYN0 X X X X 查询字0X ESMM SMM 0 1 P RR RISOCW331微机原理与接口技术精品课程例例:某一中断系统,有一片主片和两片从片8259A,主片的要求为:特定全嵌套方式、边沿触发、EOI方式、中断类型为40H;从片的要求为:全嵌套方式、边沿触发、EOI方式、中断类型为60H和80H;地址:主片为FFD0H,FFD2H;从片分别为 FFD4H,FFD6H和FFD8H,FFDAH 。试编写各8259A的初始化程序。SP 级联线级联线CAS012级联线级联线SP=1为主片为主片; SP=0为从片为从片32微机原理与接口
24、技术精品课程主片:ICW1:00010001B=11HICW2:40HICW3:01001000B=48HICW4:00010001B=11H从片A:ICW1:00010001B=11HICW2:60HICW3:00000011B=03HICW4:00000001B=01H从片B:ICW1:00010001B=11HICW2:80HICW3:00000110B=06HICW4:00000001B=01H三片8259A的控制字分别是:0X X X 1 LTIM X SNGL IC4ICW11T7 T6 T5 T4 T3 X X XICW21S7 S6 S5 S4 S3 S2 S1 S0主ICW3
25、1 X X X X X ID2 ID1 ID0从ICW3说明:说明: LTIM=1电平触发。电平触发。0边缘边缘 SNGL=1为单级。为单级。0为多极为多极 IC4=1为送为送ICW4。0不送不送 X位未用位未用ICW433微机原理与接口技术精品课程CLI ;初始化时要关中断MOV DX,0FFD0HMOV AL,11HOUT DX,ALINC DXINC DXMOV AL,40HOUT DX,ALMOV AL,48HOUT DX,ALMOV AL,11HOUT DX,AL主片8259A的初始化程序:CLIMOV DX,0FFD4HMOV AL,11HOUT DX,ALINC DXINC DX
26、MOV AL,60HOUT DX,ALMOV AL,3HOUT DX,ALMOV AL,01HOUT DX,AL从片A的初始化程序:CLIMOV DX,0FFD8HMOV AL,11HOUT DX,ALINC DXINC DXMOV AL,80HOUT DX,ALMOV AL,6HOUT DX,ALMOV AL,01HOUT DX,AL从片B的初始化程序:4.12地址: FFD0H, FFD2H地址: FFD4H, FFD6H地址: FFD8H, FFDAH34微机原理与接口技术精品课程例例:电脑:电脑IBMPC/XT上使用的上使用的8259A电脑电脑IBMPC/XT的主机板上有一个以的主机板
27、上有一个以8259A为中心组成的外为中心组成的外部中断控制逻辑。下表为外部中断源的分配表。部中断控制逻辑。下表为外部中断源的分配表。电脑在上电初始化期间,电脑在上电初始化期间,BIOS中有三段与中有三段与8259A有关的程序,见下页有关的程序,见下页 返回38页35微机原理与接口技术精品课程(1) 8259A初始化初始化MOV AX , 13H;ICW1:边沿触发、单片8259A、要送ICW4OUT 20H , AL;8259A接口的偶地址为20HMOV AL ,8;ICW2:中断类型码从08H开始0UT 21H , AL;8259A接口的奇地址为21HMOV AL , 9;ICW4:缓冲方式
28、,80868088CPUOUT 21H , ALMOV AL , 0FFH ;0CWl:屏蔽全部中断OUT 21H , AL36微机原理与接口技术精品课程 (2) 检查存储单元检查存储单元IMR有无故障有无故障MOV AL , 0 ;OCW1: IMR清零,8259A中断全打开OUT 21H,ALIN AL, 21 H ; CPU可以直接读取IMR的当前状态OR AL , ALJNZ D6;若AL0,转错误处理程序D6MOV AL , 0FFH;再次全屏蔽IMROUT 21H , ALIN AL , 21h;再读IMRADD AL , l;若IMR0FFH,则加1后为全0JNZ D6;若AL0
29、,转错误处理程序D637微机原理与接口技术精品课程例:例: 编写中断处理程序,要求主程序运行时,每编写中断处理程序,要求主程序运行时,每10秒响铃一次,秒响铃一次,同时屏幕上显示信息同时屏幕上显示信息“The bell is ring!”。解:此问题的解决用VB或VC的控件很容易,但通过底层汇编语言更能看出 解决问题的实质。分析:1、每每10秒响铃一次秒响铃一次可用电脑中的定时器中断实现,可用电脑中的定时器中断实现,其中断号为其中断号为08H。 2、响铃响铃用并行接口用并行接口8255所控制的电脑扬声器实现。所控制的电脑扬声器实现。 3、显示信息显示信息“The bell is ring!”用
30、软件中断调用用软件中断调用INT 21H 实现。实现。 定时中断使用分析:电脑中定时中断使用分析:电脑中定时时间为:定时时间为:1/18.2秒(约秒(约55ms),即每隔),即每隔55ms便进入便进入08H号号中断服务程序中,此程序的主要任务是:实时修改中断服务程序中,此程序的主要任务是:实时修改“秒秒”“分分”“时时”“天天”等参数,等参数,在中断返回之前,有一个软件调用指令:在中断返回之前,有一个软件调用指令:INT 1CH;在系统;在系统BIOS中,中,1CH的处理程的处理程序只有一条序只有一条IRET指令,其实是为用户提供一个中断类型号指令,其实是为用户提供一个中断类型号(这是系统为用
31、户保留的待这是系统为用户保留的待开发资源开发资源,可用于设置周期性事件可用于设置周期性事件)。所以可以利用中断类型。所以可以利用中断类型1CH设计一些动态功能。设计一些动态功能。在本例中,因为题目要求每在本例中,因为题目要求每10秒处理一次,而秒处理一次,而8号中断执行号中断执行182次才够次才够10秒,即每中断秒,即每中断182次响铃一次,同时屏幕上显示信息次响铃一次,同时屏幕上显示信息“The bell is ring!”设计任务:设计任务:利用利用系统系统BIOS提供的中断号提供的中断号1CH,编写一个完成任务的中断服务程序即可。,编写一个完成任务的中断服务程序即可。 在编写程序时,除了
32、功能实现外,还必须做两个方面的工作:在编写程序时,除了功能实现外,还必须做两个方面的工作:1、在主程序初始化部分,先保存当前中断向量表中、在主程序初始化部分,先保存当前中断向量表中1CH4处的处的内容,再置新的向量;内容,再置新的向量;2、在主程序结束部分恢复原保存的、在主程序结束部分恢复原保存的1CH4处的原中断向处的原中断向量。量。38微机原理与接口技术精品课程主程序1.设置定时中断次数:1822.获得原1CH中断号处的中断向量并保存之。中断服务子程序1.保护现场.2.判断定时中断的次数是否够 182次.不够则中断返回;若 够则完成下列任务: (1)响铃 (2)显示: The bell i
33、s ring 恢复现场中断返回在1CH中断号处创建新的中断向量。设置8259A的中断屏蔽字。在1CH中断号处恢复原中断向量。主程序结束。程序设计框图程序设计框图每隔55ms执行1次此处应设计一个长延时39微机原理与接口技术精品课程DATA SEGMENT;数据段COUNT DW182 ;定时次数MESSDBThe bell is ring!,0AH,0DH,$ ;显示内容DATA ENDSSTACK SEGMENT DB 100 DUP(?)STACK ENDSCODE SEGMENTMAIN PROC FAR ;段外引用 ASSUME CS:CODE, DS:DATA, ES:DATA, S
34、S:STACKSTART: PUSH DS ;保护现场 PUSH AX ;保护现场 MOV AX,DATA MOV DS,AX ;创建数据段 MOV AX,STACK MOV SS,AX MOV AL,1CH;得到原中断向量,也可用其他方法获得 MOV AH,35H INT 21H ;见466页DOS功能调用表 主程序:40微机原理与接口技术精品课程PUSHES ;保护原1CH4处的处的中断向量:段地址PUSHBX ;保护原1CH4处的处的中断向量:有效地址(偏移地址)PUSHDSMOV DX,OFFSE RING ;RING的偏移地址和段地址,取出新中断向量MOVAX,SEG RING ;R
35、ING为新中断向量,后面在此建中断程序MOVDS,AX ;在1CH4处处设置新中断向量,21H号软中断完成MOVAL,1CH ;调用参数:DS:DX=中断向量 AL=中断号MOVAH,25H ;见466页INT21HPOPDSINAL,21H ;设置8259A的中断屏蔽位ANDAL,0FEH ;使IR0=0(开放),其它IRi保持原状OUT21H,ALSTI ;初始化工作已做完,CPU开放中断 MOV DI,2000 ;延时,代替主程序实体 DELAY: MOV SI,3000 DELAY1: DEC SI JNZ DELAY1 DEC DI JNZ DELAY41微机原理与接口技术精品课程P
36、OPDX;取原中断向量POPDS MOVAL,1CH ;注意,如真是一个实际项目,则无须再置换MOVAH,25H ;原中断向量!等于更改了操作系统为我所用!INT21HRETMAIN ENDP ;主程序段到此结束。RING PROC NEAR;1CH的中断服务程序,段内调用PUSHDS;保存现场PUSHAX ;此服务程序完成三件事:1、查中断次数是PUSHCX ;否够182次;2、响铃;3、显示“The”PUSHDXMOVAX,DATAMOVDS,AXSTI ; CPU开放中断DECCOUNT;10秒计数JNZEXIT;时间不到,退出中断MOVDX,OFFSET MESS;时间到MOVAH,0
37、9H;显示信息INT21H42微机原理与接口技术精品课程 MOVDX,100 ;响铃循环100次 IN AL,61H;响铃,61H是系统中8255的B口的地址 ANDAL,0FCHSOUND: XOR AL,02H OUT61H,AL ;此句执行后响铃开始 MOVCX,140H ;响铃小延时,程序延时,不太准,且因电脑WAIT: LOOP WAIT ;主频不同而不同 DECDX JNESOUND ;完成较长时间的响铃 MOVCOUNT,182 ;重置定时中断次数EXIT: CLI ;关中断 POPDX ;恢复现场 POPCX POPAX POPDS STI ;重开放中断 IRET ;中断返回RING ENDP ;中断子程序段结束CODE ENDS ;代码结束 ENDSTART ;全部结束43