《第八章、输入输出程序设计.ppt》由会员分享,可在线阅读,更多相关《第八章、输入输出程序设计.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Assembly LanguageAssembly LanguageCPUMEMI/O设备设备三总线三总线I/O接口接口第八章、输入输出程序设计第八章、输入输出程序设计第八章、输入输出程序设计第八章、输入输出程序设计第第第第17171717讲:讲:讲:讲:I/OI/OI/OI/O设备的数据传送方式一和二设备的数据传送方式一和二设备的数据传送方式一和二设备的数据传送方式一和二第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Languag
2、e8.18.1、I/OI/O设备的数据传送方式设备的数据传送方式设备的数据传送方式设备的数据传送方式8.1.18.1.18.1.18.1.1、CPUCPUCPUCPU与外设与外设与外设与外设 任任何何外外部部设设备备与与CPUCPU通通信信必必须须通通过过一一个个硬硬件件“接接接接口口口口”或或“控控控控制制制制器器器器”;这这些些接接口口或或控控制制器器都都必必须须能能够够支支支支持持持持输输入入设设备备指指令令IN/OUTIN/OUT与与外外部部设设备备交交换换信信息息,它它们们必必须须按按照照不不不不同同同同的的的的端端端端口口口口地地地地址址址址分别传送以下三种不同性质的信息:分别传送
3、以下三种不同性质的信息:1.1.1.1.控制信息控制信息由由CPUCPU发给发给I/OI/O接口,接口,有的有的有的有的再由再由I/OI/O接口送给接口送给I/OI/O设备,通知接口和设备,通知接口和 I/O I/O设备完成哪些工作(如:设备完成哪些工作(如:CPUCPU发给打印机接口的启动信号);发给打印机接口的启动信号);2.2.2.2.状态信息状态信息由由I/OI/O设备经接口传送给设备经接口传送给CPUCPU,告知,告知CPUCPU当前设备所处的状态;当前设备所处的状态;输入设备输入设备用用”准备好(准备好(READYREADY)”信号表示外设是否已准备好输入数据;信号表示外设是否已准
4、备好输入数据;输出设备输出设备用用“忙忙(BUSY)(BUSY)”信号表示外设是否处于空闲状态;信号表示外设是否处于空闲状态;3.3.3.3.数据信息数据信息由由I/OI/O设备经接口传给设备经接口传给CPUCPU或由或由CPUCPU经接口传送经接口传送I/OI/O设备的真正需要设备的真正需要 交换的各种数据。交换的各种数据。注意注意注意注意接口与接口与I/OI/O设备之间的数据信息可以是并行的数据(并行口),也可以设备之间的数据信息可以是并行的数据(并行口),也可以 是串行口(串行口)。是串行口(串行口)。8.1.28.1.28.1.28.1.2、CPUCPUCPUCPU与与与与I/OI/O
5、I/OI/O设备之间的信息传送方式设备之间的信息传送方式设备之间的信息传送方式设备之间的信息传送方式第一种方式第一种方式直接存储器存取方式(简称直接存储器存取方式(简称“DMADMADMADMA方式方式方式方式”或或“成组传送方式成组传送方式成组传送方式成组传送方式”)第二种方式第二种方式程序直接控制方式(简称程序直接控制方式(简称“程序控制方式程序控制方式程序控制方式程序控制方式”)第三种方式第三种方式中断传送方式(简称中断传送方式(简称“中断方式中断方式中断方式中断方式”)第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总
6、目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language8.1.38.1.38.1.38.1.3、直接存贮器存取方式(、直接存贮器存取方式(、直接存贮器存取方式(、直接存贮器存取方式(DMADMADMADMA方式方式方式方式 )1.1.1.1.传送特征传送特征传送特征传送特征.用用于于速速速速度度度度非非非非常常常常快快快快的的I/OI/O设设备备;如如磁磁盘盘、ADAD转转换换器器等等,如如果果这这些些设设备备用用另另外外二二种种方方式式则则容易丢失数据;容易丢失数据;.能能够够实实现现I/OI/O设设备备直直接接和和内内存存之之间间进进行
7、行成成批批数数据据的的快快速速传传送送,即即:每每一一个个字字节节的的传传送送不不必必经经过过CPUCPU处处理理,I/OI/O数数据据一一到到接接口口就就直直接接送送往往存存储储器器,接接口口和和DMA DMA 控控制制器器同同样样可可以以直直接从内存中取出一个字节送给接从内存中取出一个字节送给I/OI/O设备;设备;.传送数据前必须经过初始化传送数据前必须经过初始化DMADMA控制器并申请总线使用权;控制器并申请总线使用权;2.DMA2.DMA2.DMA2.DMA控制器的主要构成控制器的主要构成控制器的主要构成控制器的主要构成四个寄存器,每个寄存器都有一个地址四个寄存器,每个寄存器都有一个
8、地址 1.1.1.1.控制寄存器控制寄存器控制寄存器控制寄存器由由CPUCPU写入写入“控制字控制字”,由此得知是输出还是写入等;,由此得知是输出还是写入等;2.2.2.2.状态寄存器状态寄存器状态寄存器状态寄存器由由I/OI/O设备写入设备写入“状态字状态字”,由此得知,由此得知I/OI/O设备当前状态;设备当前状态;3.3.3.3.地地地地址址址址寄寄寄寄存存存存器器器器存存放放的的是是要要传传送送的的数数据据块块首首地地址址(内内存存地地址址);每每传传送送一一次次自自动动增增1 1;4.4.4.4.字字字字节节节节计计计计数数数数器器器器存存放放的的是是要要传传送送的的数数据据块块中中
9、的的字字节节个个数数(即即数数据据长长度度);每每传传送送一一次次自动减自动减1 1;第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language3.DMA3.DMA3.DMA3.DMA方式的基本工作过程方式的基本工作过程方式的基本工作过程方式的基本工作过程:1.1.1.1.DMADMADMADMA申申申申请请请请总总总总线线线线DMADMA控控制制器器接接受受到到I/OI/O指指令令后后检检测测到到I/OI/O设设备备状状态态,
10、然然后后向向CPUCPU发发出出HOLDHOLD信号申请总线使用权信号申请总线使用权;2.2.2.2.CPUCPUCPUCPU释释释释放放放放总总总总线线线线CPUCPU根根据据自自身身情情况况向向DMADMA控控制制器器返返回回HOLDHOLD响响应应信信号号,然然后后交交出出总总线线使使用权;用权;3.3.3.3.打开内存打开内存打开内存打开内存DMADMA的地址寄存器向地址总线发送地址信号的地址寄存器向地址总线发送地址信号;4.4.4.4.数据传送数据传送数据传送数据传送传送的字节数据通过数据总线传送传送的字节数据通过数据总线传送;5.5.5.5.地址值增地址值增地址值增地址值增1 1
11、1 1地址寄存器自动增地址寄存器自动增1 1指向下一个字节;指向下一个字节;6.6.6.6.字节计数值减字节计数值减字节计数值减字节计数值减1 1 1 1字节计数器自动减字节计数器自动减1 1;7.7.7.7.循环继续循环继续循环继续循环继续若计数器不为若计数器不为0 0则转向则转向3333 ;8.8.8.8.DMADMADMADMA释放总线释放总线释放总线释放总线DMADMA撤销总线请求信号撤销总线请求信号HOLDHOLD而返还总线使用权,传送结束。而返还总线使用权,传送结束。第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录
12、总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language8.2.18.2.18.2.18.2.1、I/OI/OI/OI/O端口端口端口端口1.1.任何任何I/OI/O设备的接口由一组寄存器组成,每个寄存器都被分配一个设备的接口由一组寄存器组成,每个寄存器都被分配一个I/OI/O端口地址,即端口地址,即I/OI/O端口号,端口号,I/OI/O端口有如下三种寄存器:端口有如下三种寄存器:1.1.数据寄存器数据寄存器数据寄存器数据寄存器有多个组成,存放数据,作数据缓冲用;有多个组成,存放数据,作数据缓冲用;2.2.状态寄存器状态寄存器状态寄存器状
13、态寄存器仅一个,存放当前设备的状态信息;仅一个,存放当前设备的状态信息;3.3.命令寄存器命令寄存器命令寄存器命令寄存器仅一个,存放仅一个,存放CPUCPU发来的用以控制接口的命令字;发来的用以控制接口的命令字;2.2.端口地址端口地址80808686微机中微机中I/OI/O端口编址采用端口编址采用“独立编址独立编址”方式,方式,I/OI/O空间允许设置空间允许设置64K64K个个8 8位端口或位端口或32K32K(3276832768)个)个1616位端口。位端口。说明说明不同类型计算机的不同类型计算机的I/OI/O端口号不完全相同,参见端口号不完全相同,参见P P284284表表8.18.
14、1实例。实例。8.2.28.2.28.2.28.2.2、I/OI/OI/OI/O指令回顾指令回顾指令回顾指令回顾ININININ和和OUTOUTOUTOUT(统一编址计算机系统没有该指令)(统一编址计算机系统没有该指令)1.1.1.1.输入指令输入指令输入指令输入指令ININININ数据从外设端口传送给数据从外设端口传送给ACC ACC 1.1.1.1.直接寻址直接寻址直接寻址直接寻址长格式长格式(PORTPORTPORTPORT为为为为8 8 8 8位端口号)位端口号)位端口号)位端口号)IN AL,PORTIN AL,PORTIN AL,PORTIN AL,PORT字节传送字节传送 (AL
15、)(AL)(PORT)(PORT)IN AX,PORTIN AX,PORTIN AX,PORTIN AX,PORT字节传送字节传送 (AX)(AX)(PORT+1,PORT)(PORT+1,PORT)IN EAX,PORTIN EAX,PORTIN EAX,PORTIN EAX,PORT双字传送双字传送 (EAX)(EAX)(PORT+3,PORT+2,PORT+1,PORT)(PORT+3,PORT+2,PORT+1,PORT)2.2.2.2.间接接寻址间接接寻址间接接寻址间接接寻址短格式短格式(DXDXDXDX中是中是中是中是16161616位端口号)位端口号)位端口号)位端口号)IN A
16、L,DX IN AL,DX IN AL,DX IN AL,DX字节传送字节传送 (AL)(AL)(DX)(DX)IN AX,DX IN AX,DX IN AX,DX IN AX,DX字节传送字节传送 (AX)(AX)(DX)+1,(DX)(DX)+1,(DX)IN EAX,DX IN EAX,DX IN EAX,DX IN EAX,DX双字传送双字传送 (EAX)(EAX)(DX)+3,(DX)+2,(DX)+1,(DX)(DX)+3,(DX)+2,(DX)+1,(DX)8.28.2、程序直接控制、程序直接控制、程序直接控制、程序直接控制I/OI/O方式方式方式方式 第第1717讲:讲:I/O
17、I/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language2.2.2.2.输出指令输出指令输出指令输出指令OUTOUTOUTOUT数据从数据从ACCACC流向外设端口流向外设端口1.1.1.1.直接寻址直接寻址长格式长格式 OUT PORTOUT PORTOUT PORTOUT PORT,ALALALAL 字节传送字节传送(PORT)(PORT)(AL)(AL);OUT PORTOUT PORTOUT PORTOUT PORT,AX AX AX AX 字
18、节传送字节传送(PORT+1,PORT)(PORT+1,PORT)(AX)(AX);OUT PORTOUT PORTOUT PORTOUT PORT,EAXEAXEAXEAX双字传送双字传送(PORT+3,PORT+2,PORT+1,PORT)(PORT+3,PORT+2,PORT+1,PORT)(EAX)(EAX);2.2.2.2.间接接寻址间接接寻址短格式短格式 OUT DXOUT DXOUT DXOUT DX,ALALALAL 字节传送字节传送(DX)(DX)(AL)(AL)OUT DXOUT DXOUT DXOUT DX,AXAXAXAX 字节传送字节传送(DX)+1,(DX)(DX)
19、+1,(DX)(AX)(AX)OUT DXOUT DXOUT DXOUT DX,EAXEAXEAXEAX双字传送双字传送(DX)+3,(DX)+2,(DX)+1,(DX)(DX)+3,(DX)+2,(DX)+1,(DX)(EAX)(EAX)说明说明说明说明:.DOSDOS功功能能调调用用(INT INT 21H21H)或或BIOSBIOS例例行行程程序序(INT INT 16H16H)中中的的与与外外设设交交换换数据都是由数据都是由ININ或或OUT OUT 指令构成其中断程序的;指令构成其中断程序的;.程程序序中中直直接接用用IN/OUTIN/OUT与与I/OI/O设设备备交交换换信信息息比
20、比DOSDOS功功能能调调用用或或BIOSBIOS例例行行程程序序调调用要快,但编程人员必须对用要快,但编程人员必须对I/OI/O设备的构结非常了解,且程序对硬件依赖性也大;设备的构结非常了解,且程序对硬件依赖性也大;第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language3.IN/OUT3.IN/OUT指令的应用实例指令的应用实例例例1 1:循循环环测测试试可可编编程程中中断断控控制制器器8259A8259A的的状状态态寄寄
21、存存器器的的第第二二位位是是否否为为1 1,若若为为1 1则则推推出出测测试;试;AGAIN:AGAIN:IN AL,IN AL,STATUS_PORTSTATUS_PORT TEST AL,00000100B TEST AL,00000100B JZ AGAIN JZ AGAIN例例2 2:读读取取某某接接口口的的命命令令寄寄存存器器(端端口口号号位位126H126H)然然后后使使其其第第七七位位置置1 1而而进进行行成成组数据传送。组数据传送。MOV DX,126H MOV DX,126H IN AL,DX IN AL,DX OR AL,80H OR AL,80H OUT DX,AL OU
22、T DX,AL 第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language8.2.38.2.38.2.38.2.3、程序直接控制、程序直接控制、程序直接控制、程序直接控制I/OI/OI/OI/O方式的实现方法方式的实现方法方式的实现方法方式的实现方法查询方式查询方式查询方式查询方式(或称或称“等待方式等待方式等待方式等待方式”)1.1.查查查查询询询询方方方方式式式式的的的的基基基基本本本本思思思思想想想想程程序序检检测测I/O
23、I/O的的状状态态信信息息,若若允允许许进进行行I/OI/O数数据据传传送送则则进进行行数数据据传传送送,否否则则等待一定时间再查询;等待一定时间再查询;2.2.查询的优缺点查询的优缺点查询的优缺点查询的优缺点优优优优点点点点可可以以利利用用程程序序安安排排多多个个I/OI/O设设备备的的优优先先顺顺序,从而按照一定的次序轮流进行序,从而按照一定的次序轮流进行I/OI/O信息传递;信息传递;缺缺缺缺点点点点CPUCPU要要用用大大量量时时间间查查询询I/OI/O设设备备,浪浪费费CPUCPU的时间;的时间;程序增长,浪费内存的存储空间;程序增长,浪费内存的存储空间;第第1717讲:讲:I/OI
24、/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language设备控制寄存器设备控制寄存器设备控制寄存器设备控制寄存器(61h)(61h)(61h)(61h)1/0 01/0 01/0 01/0 0 控制其它外部设备控制其它外部设备控制其它外部设备控制其它外部设备与与与与门门门门放大器放大器放大器放大器2 2 2 2号定时器门控号定时器门控号定时器门控号定时器门控1 01 03.I/O3.I/O3.I/O3.I/O程序实例分析:程序实例分析:程序实例分析:程序
25、实例分析:Eg8.1Eg8.1Eg8.1Eg8.1发声子程序发声子程序发声子程序发声子程序1 1 1 1 movdx,100movdx,100inal,61hinal,61handal,11111100bandal,11111100bsound:sound:xoral,2xoral,2out61h,alout61h,almovcx,140hmovcx,140hwait1:wait1:loopwait1loopwait1decdxdecdxjnesoundjnesound第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一
26、讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language.model tiny.model tiny.code.code.startup.startupcall speaker_oncall speaker_onmov ah,1mov ah,1int 21hint 21hcall speaker_offcall speaker_offcall speaker_offcall speaker_off.exit 0.exit 0speaker_onspeaker_on proc push ax in al,61hin al,61h or al,3 or
27、al,3 out 61h,al out 61h,al pop ax retspeaker_onspeaker_on endpEg8.1Eg8.1Eg8.1Eg8.1发声子程序发声子程序发声子程序发声子程序2 2 2 2speaker_offprocspeaker_offprocpushaxinal,61hinal,61handal,0fchandal,0fchout61h,alout61h,alpopaxretspeaker_offendpspeaker_offendp第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一
28、讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Languageprint proc nearprint proc nearprint proc nearprint proc near push ax push ax push dx push dx mov dx,mov dx,378h378h ;数据寄存器数据寄存器 out dx,al out dx,al mov dx,mov dx,379h 379h ;状态寄存器状态寄存器again:in al,dxagain:in al,dx test al,80h ;test al,80h ;(dx)7 7=busy
29、 je again je again ;=0,;=0,打印机忙打印机忙 mov dx,mov dx,37ah 37ah ;控制寄存器控制寄存器 mov al,0dhmov al,0dh out dx,al out dx,al ;送选通信号送选通信号 jmp$+2jmp$+2 ;展宽选通信号展宽选通信号 mov al,0chmov al,0ch out dx,al out dx,al pop dx pop dx pop ax pop ax ret retprint endpprint endpprint endpprint endpEg8.2Eg8.2Eg8.2Eg8.2打印机查询输出子程序打印
30、机查询输出子程序打印机查询输出子程序打印机查询输出子程序00001101选通位自动换行初始化选择位中断位37AH37AH37AH37AH第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly LanguageEg8.3Eg8.3Eg8.3Eg8.3轮流查询几种轮流查询几种轮流查询几种轮流查询几种I/OI/OI/OI/O设备:设备:设备:设备:DEV1:DEV1:DEV1:DEV1:ININININAL,STAT1AL,STAT1AL,STAT
31、1AL,STAT1TESTTESTTESTTESTAL,STAT1_BITAL,STAT1_BITAL,STAT1_BITAL,STAT1_BITJZJZJZJZDEV2DEV2DEV2DEV2CALLCALLCALLCALLFAR PTR PROC1FAR PTR PROC1FAR PTR PROC1FAR PTR PROC1DEV2:DEV2:DEV2:DEV2:ININININAL,STAT2AL,STAT2AL,STAT2AL,STAT2TESTTESTTESTTESTAL,STAT2_BITAL,STAT2_BITAL,STAT2_BITAL,STAT2_BITJZJZJZJZDEV
32、3DEV3DEV3DEV3CALLCALLCALLCALLFAR PTR PROC2FAR PTR PROC2FAR PTR PROC2FAR PTR PROC2DEV3:DEV3:DEV3:DEV3:ININININAL,STAT3AL,STAT3AL,STAT3AL,STAT3TESTTESTTESTTESTAL,STAT3_BITAL,STAT3_BITAL,STAT3_BITAL,STAT3_BITJZJZJZJZDEV1DEV1DEV1DEV1CALLCALLCALLCALLFAR PTR PROC3FAR PTR PROC3FAR PTR PROC3FAR PTR PROC3优:程
33、序安排或修改设备的优先次序优:程序安排或修改设备的优先次序优:程序安排或修改设备的优先次序优:程序安排或修改设备的优先次序缺:查询等待浪费缺:查询等待浪费缺:查询等待浪费缺:查询等待浪费CPUCPUCPUCPU大量有效时间大量有效时间大量有效时间大量有效时间第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language8.3.18.3.18.3.18.3.1、8086808680868086的中断及中断分类的中断及中断分类的中断及中
34、断分类的中断及中断分类 1.1.1.1.中中中中断断断断使使CPUCPU中中止止正正在在运运行行的的程程序序而而转转去去处处处处理理理理特特特特殊殊殊殊事事事事件件件件(执执行行中中断断程程序序)的的操操作作(类类似于子操作调用);似于子操作调用);注意:正在执行某一条指令的过程时不响应任何类型的中断的;注意:正在执行某一条指令的过程时不响应任何类型的中断的;2.2.2.2.中断源中断源中断源中断源引起中断的事件;分为两类:外中断、内中断;引起中断的事件;分为两类:外中断、内中断;外外外外中中中中断断断断(硬硬硬硬中中中中断断断断):来来自自I/OI/O设设备备的的I/OI/O请请求求、计计算
35、算机机的的一一些些异异常常事事件件等等,这这些些中中断断信信号号一一般般由由外外设设控控制制器器或或者者是是协协议议处处理理器器(8087/802878087/80287)产产生生;分分为为“可可屏屏蔽蔽外外中中断断”和和“不可屏蔽外中断不可屏蔽外中断”两类;两类;l l外设的外设的 I/O I/O 请求请求 可屏蔽中断可屏蔽中断l l电源掉电电源掉电/奇偶错等奇偶错等 非屏蔽中断非屏蔽中断内内内内中中中中断断断断(软软软软中中中中断断断断):由由用用户户程程序序安安排排的的中中断断指指令令INTINT、CPU CPU 的的某某些些错错误误处处理理、DEBUGDEBUG程序中设置的中断指令等产
36、生的各种中断;程序中设置的中断指令等产生的各种中断;l lINT INT 指令指令l lCPU CPU 错错(除法错、溢出除法错、溢出)l l为调试程序设置的中断为调试程序设置的中断8.38.3、中断传送方式、中断传送方式、中断传送方式、中断传送方式 第第1818讲:讲:I/OI/O设备的数据传送方式三设备的数据传送方式三第第第第18181818讲:讲:讲:讲:I/OI/OI/OI/O设备的数据传送方式三设备的数据传送方式三设备的数据传送方式三设备的数据传送方式三总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language非屏
37、蔽中断请求非屏蔽中断请求中断逻辑中断逻辑INTnINTO除法错除法错单步单步n401CPUCPUCPUCPU2NMI8259A可可可可编编编编程程程程中中中中断断断断控控控控制制制制器器器器(PIC)IR0系统定时器系统定时器IR1键盘键盘IR2彩色彩色/图形接口图形接口IR3保留保留IR4串行通讯口串行通讯口IR5保留保留IR6软盘软盘IR7打印机打印机INTRINTRINTRINTR08090A0B0C0D0E0F3.803.803.803.8086868686的多有中断源的多有中断源的多有中断源的多有中断源 4.4.4.4.硬件中断硬件中断硬件中断硬件中断中断信息来自硬件设备,有以下两类
38、:中断信息来自硬件设备,有以下两类:1.1.可屏蔽中断可屏蔽中断硬盘、软盘、键盘、显示器、打印机等外部设备产生的中断信号硬盘、软盘、键盘、显示器、打印机等外部设备产生的中断信号经可编程中断控制器经可编程中断控制器PICPIC送入送入CPUCPU的的INTRINTR管脚;管脚;2.2.非屏蔽中断非屏蔽中断简称简称“非屏蔽中断非屏蔽中断”,如电源调电等产生的中断信号送入,如电源调电等产生的中断信号送入CPUCPU的的NMINMI管脚,管脚,CPUCPU无条件响应;无条件响应;第第1818讲:讲:I/OI/O设备的数据传送方式三设备的数据传送方式三总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一
39、讲前一讲Assembly LanguageAssembly Language5.5.5.5.软软软软件件件件中中中中断断断断CPUCPU是是否否响响应应软软件件中中断断不不受受IFIF(中中断断屏屏蔽蔽标标志志位位)的的影影响响,IFIF标标志志位位只只对对可可屏蔽的外部中有效;通常通过以下三种途径获得软件中断信号:屏蔽的外部中有效;通常通过以下三种途径获得软件中断信号:1.1.1.1.中断指令中断指令中断指令中断指令 INT NINT NINT NINT N 中中断断类类型型号号N N取取值值范范围围为为00H00HFFHFFH(共共128128种种,参参见见P469P469附附录录3 3)
40、,其其中中少少数数类类型型号号被被系统占用,绝大多数留给用户使用;系统占用,绝大多数留给用户使用;2.CPU2.CPU2.CPU2.CPU错误错误错误错误CPUCPU的某些错误,主要有以下两种:的某些错误,主要有以下两种:.除法错中断除法错中断INT 00H INT 00H INT 00H INT 00H 执行除法命令时,若除数为零或商超过寄存器表示范围时执行除法命令时,若除数为零或商超过寄存器表示范围时自动自动自动自动产生该中断产生该中断.溢出中断溢出中断INT 04HINT 04HINT 04HINT 04H 或或 INTO INTO INTO INTO 当溢出标志位当溢出标志位0F=10
41、F=1时产生该中断,但必须在该程序中有这指令;时产生该中断,但必须在该程序中有这指令;3.DEBUG3.DEBUG3.DEBUG3.DEBUG调试调试调试调试有两种类型:有两种类型:单单步步中中断断类类型型号号:01H01H01H01H,当当TFTF位位为为一一时时,每每条条指指令令执执行行后后CPUCPU自自动动产产生生类类型型号号位位01H01H的的单单步步中中断断;首首先先是是FLAGSFLAGS、CSCS、IPIP入入栈栈保保存存,其其次次是是清清除除TFTF(单单步步中中断断)和和IFIF(中中断断屏屏蔽蔽)而而执执行行单单步步中中断断程程序序(该该子子程程序序不不是是单单步步方方式
42、式),最最后后出出栈栈恢恢复复IPIP、CSCS、FLAGSFLAGS等信息,等信息,CPUCPU又处于单步方式;又处于单步方式;断点中断断点中断类型号:类型号:03H03H03H03H,可将,可将INT 03HINT 03H指令插入程序中;指令插入程序中;第第1818讲:讲:I/OI/O设备的数据传送方式三设备的数据传送方式三总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language6.CPU6.CPU6.CPU6.CPU响应某一可屏蔽外部中断的条件响应某一可屏蔽外部中断的条件响应某一可屏蔽外部中断的条件响应某一可屏蔽外部
43、中断的条件 1.1.1.1.当前执行的程序是非中断程序当前执行的程序是非中断程序CPUCPU允许响应外部可屏蔽中断允许响应外部可屏蔽中断FLAGSFLAGS的中断允许位的中断允许位IF=1IF=1;该外设的中断请求没有被屏蔽该外设的中断请求没有被屏蔽中断屏蔽寄存器中断屏蔽寄存器8259A8259A中对应位为中对应位为0 0;2.2.2.2.当前执行的程序是可屏蔽中断的中断程序当前执行的程序是可屏蔽中断的中断程序此时要求:此时要求:CPUCPU允许响应外部可屏蔽中断允许响应外部可屏蔽中断FLAGSFLAGS的中断允许位的中断允许位IF=1IF=1;该外设的中断请求没有被屏蔽该外设的中断请求没有被
44、屏蔽8259A8259A中的中断屏蔽寄存器对应位为中的中断屏蔽寄存器对应位为0 0新中断请求比正在处理的中断级别要高;新中断请求比正在处理的中断级别要高;7.7.7.7.为了使为了使为了使为了使CPUCPUCPUCPU能响应可屏蔽的外部中断,必须处理的两类(能响应可屏蔽的外部中断,必须处理的两类(能响应可屏蔽的外部中断,必须处理的两类(能响应可屏蔽的外部中断,必须处理的两类(3 3 3 3个)寄存器个)寄存器个)寄存器个)寄存器 1.1.1.1.标志寄存器标志寄存器标志寄存器标志寄存器FLAGSFLAGSFLAGSFLAGS允许允许/禁止禁止CPUCPU响应可屏蔽的外部中断;响应可屏蔽的外部中
45、断;STISTISTISTI 使使IF=1IF=1(开中断);(开中断);CLICLICLICLI 使使IF=0IF=0(关中断);(关中断);2.2.2.2.中断屏蔽寄存器中断屏蔽寄存器中断屏蔽寄存器中断屏蔽寄存器端口号为端口号为21H21H,位于,位于80529A80529A可编程中断控制器中;可编程中断控制器中;8 8位对应着屏蔽位对应着屏蔽8 8个外部设备个外部设备某位为某位为1 1表示屏蔽,为表示屏蔽,为0 0表示允许中断请求;表示允许中断请求;3.3.3.3.中断命令寄存器中断命令寄存器中断命令寄存器中断命令寄存器端口号为端口号为20H,20H,位于位于8219A8219A可编程中
46、断控制器中;可编程中断控制器中;第第1818讲:讲:I/OI/O设备的数据传送方式三设备的数据传送方式三总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language设置中断屏蔽位:设置中断屏蔽位:设置中断屏蔽位:设置中断屏蔽位:中断屏蔽寄存器的中断屏蔽位中断屏蔽寄存器的中断屏蔽位 =0=0 允许允许I/OI/O设备请求中断设备请求中断 =1 =1 禁止禁止I/OI/O设备请求中断设备请求中断例例1 1:只允许键盘中断;:只允许键盘中断;MOV AL MOV AL,11111101B 11111101B OUT 21H OUT
47、21H,AL AL 例例2 2:增加允许键盘中断其余设备的中断是否允许不作任何改变;增加允许键盘中断其余设备的中断是否允许不作任何改变;IN ALIN AL,21H21H AND AL AND AL,11111101B11111101B OUT 21H OUT 21H,ALAL第第1818讲:讲:I/OI/O设备的数据传送方式三设备的数据传送方式三总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language实例分析实例分析MOV AL,MOV AL,111111111 1 1 100000000100100100100B B
48、OUT 20H,AL/OUT 20H,AL/优先级为:优先级为:IRIR5 5 IR IR6 6 IR IR7 7 IR IR0 0 IR IR1 1 IR IR2 2 IR IR3 3 IRIR4 4 MOV AL,MOV AL,101010101 1 1 100000000000000000000B B OUT 20H,AL/OUT 20H,AL/优先级为:优先级为:IRIR6 6 IR IR7 7 IR IR0 0 IR IR1 1 IR IR2 2 IR IR3 3 IR IR4 4 IR IR5 5 OUT 20H,AL/OUT 20H,AL/优先级为:优先级为:IRIR7 7 IR
49、 IR0 0 IR IR1 1 IR IR2 2 IR IR3 3 IR IR4 4 IR IR5 5 IR IR6 6说明说明说明说明执行任何类型的中断程序一开始时,执行任何类型的中断程序一开始时,FLAGSFLAGS、CSCS、IPIP等都入栈保存,然后清除等都入栈保存,然后清除IFIF位和位和EOIEOI位,再去执行中断处理程序,中断处理程序结束时(即执行位,再去执行中断处理程序,中断处理程序结束时(即执行IRETIRET)都出栈)都出栈恢复恢复IPIP、CSCS、FLAGSFLAGS等,中断返回后等,中断返回后IF=1IF=1;中断处理过程中可根据需要开关中断;中断处理过程中可根据需要
50、开关中断(即使(即使IF=1IF=1或或0 0或或EOIEOI置置1 1);但结束前必须发出中断结束命令);但结束前必须发出中断结束命令EOIEOI,否则中断返回后,否则中断返回后仍然不能响应同级或低级中断请求。仍然不能响应同级或低级中断请求。第第1818讲:讲:I/OI/O设备的数据传送方式三设备的数据传送方式三总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language8.3.28.3.28.3.28.3.2、中断向量表、中断向量表、中断向量表、中断向量表1.1.1.1.中断向量的基本概念中断向量的基本概念中断向量的基本概