《第3章微机接口与中断技术精选PPT.ppt》由会员分享,可在线阅读,更多相关《第3章微机接口与中断技术精选PPT.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 微机接口与中断技术第1页,本讲稿共50页第一节第一节 输入输出与接口技术输入输出与接口技术一、微机的输入输出系统一、微机的输入输出系统:总线驱动总线驱动控制逻辑控制逻辑数据寄存器数据寄存器状态寄存器状态寄存器控制寄存器控制寄存器CPUCPU外部设备外部设备DBDBABABCBCB 接接 口口 电电 路路数据信号数据信号控制信号控制信号状态信号状态信号与与CPUCPU连接连接 与外设相连与外设相连地址译码地址译码第2页,本讲稿共50页CPU与接口之间通过三种总线交换信息与接口之间通过三种总线交换信息:数据信息数据信息CPU与输入输出设备之间要交与输入输出设备之间要交换的数据本身换的数据本
2、身.状态信息状态信息由外设通过接口传递给由外设通过接口传递给CPU,表明设备是否准备好等外设的工作状态表明设备是否准备好等外设的工作状态.控制信息控制信息CPU通过接口传递给输入输出通过接口传递给输入输出设备设备,经接口电路解释并做适当变换后去经接口电路解释并做适当变换后去控制外设控制外设.第3页,本讲稿共50页二、接口电路的功能二、接口电路的功能数据缓冲的功能数据缓冲的功能达到达到CPUCPU与外设之间的速度匹配与外设之间的速度匹配,避免数避免数据丢失据丢失,接口中的数据寄存器起数据锁存、接口中的数据寄存器起数据锁存、缓冲和驱动的作用缓冲和驱动的作用.设备选择的功能设备选择的功能CPUCPU
3、与外设之间联络的功能与外设之间联络的功能向向CPUCPU提供外设的提供外设的状态信号状态信号,向外设提供向外设提供CPU的控制逻辑的控制逻辑.第4页,本讲稿共50页信号转换的功能信号转换的功能信号的电平转换、模数和数信号的电平转换、模数和数/模转换、模转换、串并和并串转换、数据宽度变换、串并和并串转换、数据宽度变换、信号的逻辑关系和时序上的配合所要求信号的逻辑关系和时序上的配合所要求的转换的转换中断管理功能中断管理功能传递中断请求与中断响应信号传递中断请求与中断响应信号可编程功能可编程功能只要改变接口的软件就能改变接口的工只要改变接口的软件就能改变接口的工作方式和功能作方式和功能,以适应不同用
4、途的需要以适应不同用途的需要.第5页,本讲稿共50页三、三、CPU与外设之间数据传送控制方式与外设之间数据传送控制方式程序传送控制方式:程序传送控制方式:无条件传送控制方式无条件传送控制方式(同步传送控制方式同步传送控制方式)有条件传送方式有条件传送方式(查询式传送方式查询式传送方式)中断传送方式中断传送方式(CPU(CPU与外设并行工作与外设并行工作)DMADMA传送控制方式传送控制方式(存储器直接存取方式存储器直接存取方式)I/OI/O处理机方式处理机方式第6页,本讲稿共50页查询式传送方式查询式传送方式CPU先查询外设的状态,当外设准备好时才执行输入输出指令实现数据传送.否则就继续查询,
5、直至外设准备就绪.保证CPU与外设同步.查询式传送的传输速度慢,CPU工作效率比较低.输入状态输入状态状态就绪?状态就绪?数据交换数据交换YN传送流程传送流程第7页,本讲稿共50页 中断传送方式中断传送方式程序程序断点断点主程序主程序中断请求中断请求外设的中断服外设的中断服务子程序务子程序继继续续执执行行返回断点返回断点外设通过接口向CPU提出中断请求,CPU在开放自身中断的条件下(IF=1),向接口发出中断响应信号,然后执行中断服务程序,完成数据传送.服务结束后,返回断点,继续执行原来的程序.外设与CPU并行工作.第8页,本讲稿共50页DMADMA传送控制方式传送控制方式 CPU放弃对总线的
6、控制权,整个传送过程由DMAC管理,直接进行存储器与外设之间、外设与外设之间的数据传送。DMA传送方式对高速大批量数据传送特别有用。CPU设备DMAC内存第9页,本讲稿共50页I/OI/O处理机方式处理机方式CPU委托专门的I/O处理机来管理外设,完成数据传送和相应的数据处理。I/O处理机有自己的指令系统,也能独立地执行程序,能管理输入输出过程并控制外设,还能向CPU报告外设的状态,I/O处理机的所有这些操作都是与CPU程序并行执行的.第10页,本讲稿共50页四、输入输出端口的编址方式与译码四、输入输出端口的编址方式与译码编址方式编址方式输入输出端口与存储器统一编址输入输出端口与存储器统一编址
7、输入输出端口单独编址输入输出端口单独编址译码方式译码方式全译码法全译码法线选法线选法部分译码法部分译码法第11页,本讲稿共50页 第二节第二节 中断技术中断技术一、中断的分类一、中断的分类 第12页,本讲稿共50页外部中断(硬件中断)通过通过CPUCPU的两条中断引脚的两条中断引脚NMINMI、INTRINTR引起引起的中断的中断,包括包括:n非屏蔽中断非屏蔽中断NMINMI重要的故障信号连到重要的故障信号连到该引脚该引脚,如电源掉电、存储器检验出错如电源掉电、存储器检验出错或总线奇偶错等或总线奇偶错等.中断类型码规定为中断类型码规定为2,2,不执行中断响应周期不执行中断响应周期.第13页,本
8、讲稿共50页n可屏蔽中断INTR外部设备的中断请求信号通过中断控制器与CPU的INTR引脚相连,这些中断源都可以用软件来控制是否允许中断(IF=1允许,IF=0禁止).发生这类中断时,处理器有一个中断响应的过程(中断响应周期),其目的是处理器能读取一个由中断控制器提供的8位中断类型码n(向量号),CPU才能转向指定入口的中断服务程序.第14页,本讲稿共50页内部中断内部事件引起的中断,包括执行INT n指令、单步中断、断点中断、溢出中断、除法出错中断、调试异常、界限检查、无效操作码、协处理器不存在、无效TSS、段不存在、堆栈段溢出、一般性保护错、页面出错、协处理器错(仅80286)、对齐检查(
9、仅80486Sx)、机器检查(Pentium Pentium),以及陷阱异常、终止异常等产生的中断.内部中断不需要中断响应周期,因为内部中断的类型码都是固定的,已由Intel公司确定.第15页,本讲稿共50页二、实地址方式下的中断二、实地址方式下的中断 中断服务程序的入口地址存放在中断向量表中,中断向量表位于内存地址00000H开始的1KB范围内.每个中断服务程序的入口地址按中断类型码的顺序存放,256种中断类型码共占用1KB的内存空间,使用中断向量作为指向中断服务子程序入口地址的指针.第16页,本讲稿共50页80868086的中断向量表的中断向量表中断类型码中断类型码n n与该中断对应与该中
10、断对应的中断向量地址的关系的中断向量地址的关系:中断向量地址中断向量地址=4n=4n 第17页,本讲稿共50页中断类型码为中断类型码为8 8的中断向量地址为:的中断向量地址为:84 8432=00100000B32=00100000B20H20H例例:第18页,本讲稿共50页三、保护地址方式下的中断保护地址方式下的中断 中断描述符描述了某中断对应的中断服务程序的入口地址信息及其属性,包括偏移地址和对应段的选择符等.存放256个中断描述符的内存区域称为中断描述符表IDT,对应于256个中断或异常.保护模式下中断服务程序入口地址的计算:n根据中断类型码从中断描述符表中找出中断描述符.n用中断描述符
11、中的选择符从GDT或LDT中找出段描述符.n根据段描述符提供的段基地址与中断描述符提供的偏移地址合成中断程序入口地址.第19页,本讲稿共50页四、中断的过程中断的过程 包括:n中断源的请求n中断优先级的判断n中断响应n中断处理n中断返回第20页,本讲稿共50页 中断源中断源外部中断源主要有:外部中断源主要有:I/O设备,如键盘、显示器、打印机等.数据通道,如软磁盘、硬磁盘,磁带等.实时钟,如外部所需的定时电路等.故障源,如掉电、存储器奇偶校验错等.内部中断源主要包括:内部中断源主要包括:CPU指令产生异常,如:除法错、溢出、单步等.程序执行INT软件中断指令,如“INT 10H”、“INT 2
12、1H”、“INTO”等指令.第21页,本讲稿共50页 中断优先级中断优先级内部异常中断内部异常中断(除单步除单步)INT nINT nNMINMIINTRINTR单步中断单步中断除了单步中断以外除了单步中断以外,所有内部中断的优先权都比所有内部中断的优先权都比外部中断的优先权高。如果在执行一个能引外部中断的优先权高。如果在执行一个能引起内部中断指令的同时起内部中断指令的同时,在在NMINMI或或INTRINTR引脚端引脚端也产生了外部中断请求也产生了外部中断请求,则则CPUCPU将首先处理内将首先处理内部中断。部中断。第22页,本讲稿共50页 中断响应中断响应不可屏蔽中断或内部中断不可屏蔽中断
13、或内部中断,类型码是确定类型码是确定的的,中断响应过程不需要中断响应周期中断响应过程不需要中断响应周期,可可以立即启动相应的中断服务程序以立即启动相应的中断服务程序.可屏蔽中断的响应是在执行完当前指令后可屏蔽中断的响应是在执行完当前指令后转入中断响应周期转入中断响应周期:发中断响应信号发中断响应信号,读中断类型码读中断类型码保护现场保护现场(清除清除IF和和TF标志标志,标志寄存器内标志寄存器内容和断点地址压入堆栈容和断点地址压入堆栈)进入中断服务子程序进入中断服务子程序第23页,本讲稿共50页 中断处理和中断返回中断处理和中断返回 n关中断关中断(确保可靠地保护现场确保可靠地保护现场)n保存
14、断点,保护现场保存断点,保护现场n判断中断条件和中断源判断中断条件和中断源,响应优先级最高的中断响应优先级最高的中断n开中断开中断(允许中断嵌套允许中断嵌套)n执行中断服务程序执行中断服务程序(允许响应更高一级的中断允许响应更高一级的中断)n第二次关中断第二次关中断(确保可靠有效地恢复现场确保可靠有效地恢复现场)n恢复现场恢复现场(从堆栈中弹出中断点地址和标志寄存器内从堆栈中弹出中断点地址和标志寄存器内容容)n开中断并中断返回开中断并中断返回(返回原有程序继续执行返回原有程序继续执行)第24页,本讲稿共50页 CPU CPU中断处理的过程:中断处理的过程:第25页,本讲稿共50页五、外部中断源
15、的管理外部中断源的管理 中断优先级中断优先级(软件排队和硬件排队软件排队和硬件排队)中断源的识别中断源的识别(软件查询软件查询,硬件处理硬件处理)中断的多级嵌套中断的多级嵌套:第26页,本讲稿共50页第三节 Intel 8259中断控制器D7D0INTAINT中中断断请请求求寄寄存存器器中断屏蔽寄存器中断屏蔽寄存器数据数据总线总线缓冲器缓冲器IR0IR7读读/写写控制控制逻辑逻辑级联级联缓冲器缓冲器比较器比较器RDWRA0CSCAS0CSA1CAS2 SP/EN优优先先权权判判别别电电路路中中断断服服务务寄寄存存器器控制逻辑控制逻辑Intel 8259Intel 8259的内部结构的内部结构第
16、27页,本讲稿共50页一、一、Intel 8259的结构的结构中断请求寄存器中断请求寄存器IRR(8IRR(8位位)中断服务寄存器中断服务寄存器ISRISR(8 8位)位)中断屏蔽寄存器中断屏蔽寄存器IMRIMR(8 8位)位)优先级分析器优先级分析器PRPR 控制逻辑控制逻辑读写电路读写电路数据总线缓冲器(数据总线缓冲器(8 8位)位)级联缓冲器比较器级联缓冲器比较器 初始化命令寄存器组初始化命令寄存器组(ICWi),(ICWi),操作命令寄存器组操作命令寄存器组(OCWi)(OCWi)第28页,本讲稿共50页二、二、Intel 8259的工作过程的工作过程外设通过外设通过82598259的
17、的INTINT引脚向引脚向CPUCPU发中断请求发中断请求信号信号若若IF=1,CPUIF=1,CPU执行完当前指令后执行完当前指令后,发发INTAINTA信信号作为响应号作为响应82598259经数据总线向经数据总线向CPUCPU输送一个输送一个8 8位的中断位的中断类型码类型码中断结束命令中断结束命令(EOI),(EOI),使使ISRISR中的对应位清零中的对应位清零第29页,本讲稿共50页三、三、Intel 8259的应用编程的应用编程 1初始化编程初始化编程 写写ICW1ICW1 写写ICW2ICW2写写ICW3ICW3写写ICW4 准备接收中断准备接收中断 级联?级联?ICW4?IC
18、W4?初始化顺序初始化顺序:NNYY第30页,本讲稿共50页 写初始化命令字写初始化命令字ICW1 0 A5 1 A7 A6 S IC4LITMM A A0 D7 D6 D5 D4 D3 D2 D1 D0中断向量地址,仅在8080/8085模式下用0-边沿触发1-电平触发地址间距0-间距81-间距40-不要写ICW41-需要写ICW40-多片82591-单片8259图4.6 ICWl的格式和各位的含义第31页,本讲稿共50页 写初始化命令字写初始化命令字ICW2 1 1 A13/T5A13/T5 A12/T4A12/T4A15/T7A15/T7 A14/T6A14/T6 A9 A9 A8 A8
19、 A11/T3A11/T3 A10 A10 A0 D7 D6 D5 D4 D3 D2 D1 D0 A0 D7 D6 D5 D4 D3 D2 D1 D08080/8085模式下A15A8 中断向量地址8086/8088模式下T773 中断向量地址 ICW2ICW2的格式和含义的格式和含义:第32页,本讲稿共50页 写初始化命令字写初始化命令字ICW3 1 1 IR5 IR5 IR4 IR4 IR7 IR7 IR6 IR6 IR1 IR1 IR0 IR0 IR3 IR3 IR2 IR2 A0 D7 D6 D5 D4 D3 D2 D1 D0 A0 D7 D6 D5 D4 D3 D2 D1 D0主片主
20、片ICW3ICW3 1 1 0 0 0 0 0 0 0 0 ID1 ID1 ID0 ID0 0 0 ID2 ID2 A0 D7 D6 D5 D4 D3 D2 D1 D0 A0 D7 D6 D5 D4 D3 D2 D1 D0从片从片ICW3ICW3编编码码ID2ID2ID1ID1ID0ID00 00 00 00 00 01 10 01 10 00 01 11 11 10 00 01 10 01 11 11 10 01 11 11 1从片的从片的INTINT接主片的中断接主片的中断输输入引脚入引脚IR0IR0IR1IR1IR2IR2IR3IR3IR4IR4IR5IR5IR6IR6IR7IR7第33
21、页,本讲稿共50页 写初始化命令字写初始化命令字ICW4 1 1 0 0 SFNM SFNM 0 0 0 0 AEOI AEOI PM PM BUF BUF M/S M/S A0 D7 D6 D5 D4 D3 D2 D1 D0 A0 D7 D6 D5 D4 D3 D2 D1 D01 18086/80888086/8088模式模式0 08080/80858080/8085模式模式1-1-自动自动EOIEOI0-0-正常正常EOIEOI 非缓冲方式非缓冲方式 缓冲方式缓冲方式/从控制器从控制器 缓冲方式缓冲方式/主控制器主控制器1 1特殊全嵌套方式特殊全嵌套方式0 0一般嵌套方式一般嵌套方式 0
22、0 1 1 0 0 1 1 1 1ICW4ICW4的格式和各位的含义的格式和各位的含义第34页,本讲稿共50页 2操作方式编程操作方式编程 写操作命令字写操作命令字OCWl 1 1 M5 M5 M4 M4 M7 M7 M6 M6 M1 M1 M0 M0 M3 M3 M2 M2 A0 D7 D6 D5 D4 D3 D2 D1 D0 A0 D7 D6 D5 D4 D3 D2 D1 D00 0开放外部中断请求开放外部中断请求1 1屏蔽外部中断请求屏蔽外部中断请求 OCW1 OCW1的格式的格式第35页,本讲稿共50页 写操作命令字写操作命令字OCW2 0 0 EOI EOI 0 0 R R SL S
23、L L1 L1 L0 L0 0 0 L2 L2 A0 D7 D6 D5 D4 D3 D2 D1 D0 A0 D7 D6 D5 D4 D3 D2 D1 D00 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 01 1 0 0 0 0 1 1 2 2 0 0 1 1 0 03 3 0 0 1 1 1 1 4 4 1 1 0 0 0 0 5 5 1 1 0 0 1 1 6 6 1 1 1 1 0 0 7 71 1 1 1 1 1自动循
24、环自动循环最低优先级编码最低优先级编码 标志位标志位 OCW2 OCW2的格式的格式非特殊非特殊EOIEOI特殊特殊EOIEOI自动循环自动循环EOIEOI自动循环优先级设置自动循环优先级设置自动循环优先级清除自动循环优先级清除特殊循环特殊循环EOIEOI特殊循环优先级设置特殊循环优先级设置停止操作停止操作中断结束中断结束特殊循环特殊循环第36页,本讲稿共50页 写操作命令字写操作命令字OCW3 0 0 S2 S2 0 0 0 0 S1 S1 RR RR RIS RIS 1 1 P P A0 D7 D6 D5 D4 D3 D2 D1 D0 A0 D7 D6 D5 D4 D3 D2 D1 D0
25、0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 10 0 0 00 0 1 11 1 0 01 1 1 11 1查寻命令查寻命令0 0不查询不查询标志位标志位 OCW3 OCW3的格式的格式无作用无作用清除特殊屏蔽方式清除特殊屏蔽方式设置特殊屏蔽方式设置特殊屏蔽方式无作用无作用下一个读命令读下一个读命令读IRRIRR下一个读命令读下一个读命令读ISRISR第37页,本讲稿共50页3可编程设置的工作方式可编程设置的工作方式中断嵌套方式中断嵌套方式普通全嵌套方式普通全嵌套方式(单片单片82598259系统中系统中)特殊全嵌套方式特殊全嵌套方式(多片多片82598259级联的系统级联的系
26、统)中断优先级循环方式中断优先级循环方式自动循环优先级方式自动循环优先级方式(各中断源优先级相同各中断源优先级相同)特殊循环优先级方式特殊循环优先级方式(中断源的优先级随意中断源的优先级随意改变改变)中断屏蔽方式中断屏蔽方式普通屏蔽方式普通屏蔽方式特殊屏蔽方式特殊屏蔽方式第38页,本讲稿共50页中断结束方式中断结束方式自动中断结束方式自动中断结束方式(适合单片适合单片8259)非自动中断结束方式非自动中断结束方式(多片多片8259级联系统级联系统)中断请求触发方式中断请求触发方式边沿触发方式边沿触发方式(边沿触发方式边沿触发方式)电平触发方式电平触发方式(电平触发方式电平触发方式)读取状态方式
27、读取状态方式(如何读如何读内部寄存器的状态)查询方式查询方式(读取查询字)数据缓冲方式数据缓冲方式(多片多片8259级联系统级联系统)多片级联方式多片级联方式(主片最多可以带主片最多可以带8个从片个从片,将中断将中断源扩展到源扩展到64个个)第39页,本讲稿共50页四、四、中断服务程序设计中断服务程序设计例:Intel 8259 Intel 8259在在PCPC系统中的应用系统中的应用两片两片82598259的系统连接图的系统连接图 第40页,本讲稿共50页两片8259的地址和工作方式设定:主从片接收的中断请求信号是边沿触发方式主从片接收的中断请求信号是边沿触发方式 主从片按主从片按“固定优先
28、级固定优先级”方式管理中断源方式管理中断源主从片数据线连到主从片数据线连到CPU,CPU,采用非缓冲方式采用非缓冲方式主从片均采用非自动中断结束主从片均采用非自动中断结束(EOI)(EOI)方式方式主片的端口地址为主片的端口地址为20H20H、2lH,2lH,中断类型码为中断类型码为08H0FH;08H0FH;从片的端口地址为从片的端口地址为A0HA0H、AlHAlH,中断,中断类型码为类型码为70H77H.70H77H.第41页,本讲稿共50页初始化的汇编语言程序初始化的汇编语言程序:;初始化;初始化8259主片主片MOV AL,11H ;写;写ICWl,边沿触发,级联方式,要,边沿触发,级
29、联方式,要ICW3和和ICW4OUT 20H,AL ;写偶地址端口;写偶地址端口MOV AL,08H ;写;写ICW2,设置中断类型码,从设置中断类型码,从08H开始开始OUT 21H,AL ;写奇地址端口;写奇地址端口MOV AL,04H ;写;写ICW3,表示主片的表示主片的IR2端接从片端接从片OUT 21H,AL ;写奇地址端口;写奇地址端口MOV AL,11H ;写;写ICW4,特殊全嵌套、非缓冲特殊全嵌套、非缓冲,非自动非自动EOI结束方式结束方式OUT 21H,AL ;写奇地址端口;写奇地址端口MOV AL,0D3H;设置;设置OCWl,允许允许IR2、IR3、IR5中断中断,屏
30、蔽其它中断请求屏蔽其它中断请求OUT 21H,AL MOV AL,20H ;设置;设置OCW2,普通,普通EOI结束命令结束命令OUT 20H,AL ;写偶地址端口;写偶地址端口第42页,本讲稿共50页 ;初始化;初始化82598259从片从片 MOV AL MOV AL,11H 11H ;写;写ICWl,ICWl,边沿触发边沿触发,级联方式级联方式 OUT 0A0H OUT 0A0H,AL AL ;写偶地址端口;写偶地址端口 MOV AL MOV AL,70H 70H ;写;写ICW2ICW2,设置中断类型码,设置中断类型码 OUT 0A1H OUT 0A1H,AL AL ;写奇地址端口;写
31、奇地址端口 MOV AL MOV AL,02H 02H ;写;写ICW3,ICW3,设置从片的识别码设置从片的识别码 OUT 0A1H OUT 0A1H,AL AL ;写奇地址端口;写奇地址端口 MOV AL MOV AL,01H 01H ;写;写ICW4,ICW4,普通全嵌套普通全嵌套,非缓冲非缓冲,非非 自动结束自动结束 OUT 0A1H OUT 0A1H,AL AL ;写奇地址端口;写奇地址端口 MOV AL MOV AL,0AFH 0AFH ;设置;设置OCWl,OCWl,开放开放IR4IR4、IR6IR6 OUT 0A1H OUT 0A1H,AL AL ;写奇地址端口;写奇地址端口
32、MOV AL MOV AL,20H 20H ;设置;设置OCW2OCW2,普通,普通EOIEOI结束方式结束方式 OUT 0A0H OUT 0A0H,AL AL ;写偶地址端口;写偶地址端口第43页,本讲稿共50页 例例:中断服务程序的设计中断服务程序的设计确定用户能使用的中断类型码确定用户能使用的中断类型码保护原中断类型码保护原中断类型码.其程序格式为其程序格式为:MOV AH MOV AH,35H;35H35H;35H号功能调用号功能调用 MOV AL MOV AL,n ;n ;取出原类型码取出原类型码 INT 21H INT 21H MOV MYSEG MOV MYSEG,ESES;保存
33、;保存 MOV MYOFF MOV MYOFF,BXBX第44页,本讲稿共50页设置用户程序的中断向量设置用户程序的中断向量.其程序格式为:其程序格式为:PUSH DS ;PUSH DS ;需要保护的寄存器需要保护的寄存器 MOV AX MOV AX,SEG INT01;SEG INT01;用户程序段地址送用户程序段地址送DSDS MOV DS MOV DS,AXAX MOV DX MOV DX,OFFSET INT01;OFFSET INT01;偏移地址送偏移地址送DXDX中中 MOV AL MOV AL,n ;n ;用户的中断类型码用户的中断类型码n n MOV AH MOV AH,25H
34、 ;DOS25H ;DOS的的25H25H号调用号调用 INT 21H INT 21H POP DS POP DS第45页,本讲稿共50页设置中断屏蔽字设置中断屏蔽字(开放相应的中断屏蔽位开放相应的中断屏蔽位)CPUCPU开中断开中断(中断标志位中断标志位IF=1)IF=1)退出用户程序之前恢复原中断向量退出用户程序之前恢复原中断向量PCPC系统中,用户编写的中断服务程序的一般系统中,用户编写的中断服务程序的一般形式如下:形式如下:中断服务程序的设计中断服务程序的设计(续续)第46页,本讲稿共50页 ;主程序;主程序MOV ALMOV AL,60H ;60H ;用户中断类型码用户中断类型码60
35、H60HMOV AHMOV AH,35H 35H ;35H35H号功能调用号功能调用INT 21H INT 21H ;DOSDOS功能调用功能调用MOV MYSEGMOV MYSEG,ES;ES;原中断向量存数据段原中断向量存数据段MOV MYOFFMOV MYOFF,BXBXPUSH DSPUSH DSMOV DXMOV DX,OFFSET INT01 OFFSET INT01 ;设置入口地址;设置入口地址MOV AXMOV AX,SEG INT01 SEG INT01 MOV DSMOV DS,AX ;DS:DXAX ;DS:DX是中断服务程序首地址是中断服务程序首地址MOV AHMOV
36、AH,25H ;DOS25H ;DOS的的25H25H号调用号调用MOV ALMOV AL,60H ;60H ;供用户使用的中断类型码供用户使用的中断类型码60H60HINT 21H ;INT 21H ;设置新的中断向量设置新的中断向量POP DSPOP DSSTI ;STI ;开中断开中断 ;主程序主程序第47页,本讲稿共50页;退出程序之前恢复原中断向量的内容;退出程序之前恢复原中断向量的内容CLICLIPUSH DSPUSH DSMOV DXMOV DX,MYOFFMYOFFMOV AXMOV AX,MYSEGMYSEGMOV DSMOV DS,AXAXMOV AHMOV AH,25H
37、25H ;DOSDOS的的25H25H号调用号调用MOV ALMOV AL,60H 60H ;恢复原中断向量;恢复原中断向量INT 21HINT 21HPOP DSPOP DSSTISTIMOV AHMOV AH,ACH ACH ;返回;返回DOSDOSINT 21HINT 21HCODE ENDSCODE ENDSEND START END START ;第48页,本讲稿共50页;中断服务程序;中断服务程序INT01 PROC FARINT01 PROC FARPUSH DS PUSH DS ;需要保护的寄存器;需要保护的寄存器PUSH AXPUSH AXPUSH DXPUSH DXSTISTI ;中断服务程序;中断服务程序CLICLIPOP DX POP DX ;恢复原寄存器的内容;恢复原寄存器的内容POP AXPOP AXPOP DSPOP DSMOV ALMOV AL,20H 20H;写;写OCW2OCW2,发,发EOIEOI命令命令OUT 20HOUT 20H,ALALIRET IRET ;中断返回;中断返回INT01 ENDPINT01 ENDP第49页,本讲稿共50页第50页,本讲稿共50页
限制150内