《第6章 输入输出与中断优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第6章 输入输出与中断优秀PPT.ppt(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第6章章 输入输出与中断输入输出与中断现在学习的是第1页,共78页6.1 输入输入/输出接口概述输出接口概述CPUCPU和和外外设设之之间间必必须须要要设设置置输输入入/输输出出接接口口(I/O(I/O接接口口),作作为为CPUCPU与外设进行信息交换的与外设进行信息交换的桥梁桥梁。CPUCPU接口接口接口接口电路电路电路电路 I/O I/O设备设备设备设备接接口口是是一一组组电电路路,是是CPU与与输输入入输输出出设设备备等等外外设设之之间间协协调调动动作的控制电路。作的控制电路。现在学习的是第2页,共78页6.1.1 输入输入/输出接口的功能输出接口的功能 I/O地址译码与设备选择地址译
2、码与设备选择(1)信息的输入信息的输入/输出输出(2)命令、数据和状态的缓冲与锁存命令、数据和状态的缓冲与锁存(3)信息转换信息转换(4)现在学习的是第3页,共78页(1)I/O地址译码与设备选择地址译码与设备选择 所有外设都通过I/O接口挂接在系统总线上,在同一时刻,总线只允许一个外设与CPU进行数据传送。现在学习的是第4页,共78页(2)信息的输入信息的输入/输出输出通过I/O接口,CPU可以从外部设备输入各种信息,也可将处理结果输出到外设;CPU可以通过向I/O接口写入命令字来控制I/O接口的工作,还可以随时监测与管理I/O接口和外设的工作状态;I/O接口还可以通过接口向CPU发出中断请
3、求。现在学习的是第5页,共78页(3)命令、数据和状态的缓冲与锁存命令、数据和状态的缓冲与锁存因为CPU与外设之间的时序和速度差异很大,为了能够确保计算机和外设之间可靠地进行信息传送,要求接口电路应具有信息缓冲能力。接接口口不不仅仅应应缓缓存存(暂暂时时存存留留)CPU送送给给外外设设的的信信息息,也也要要缓缓存存(暂暂时时存存留留)外外设设送送给给CPU的的信信息息。以以实实现现CPU与与外外设设之之间间信信息息交交换的同步。换的同步。现在学习的是第6页,共78页(4)信息转换信息转换 I/O接口还要实现信息格式变换、电平转换、码制转换、传送管理以及联络控制等功能。现在学习的是第7页,共78
4、页6.1.2 CPU与输入与输入/输出接口之间的信息输出接口之间的信息 CPU与与I/O设备之间传输的信息可分为以下三种:设备之间传输的信息可分为以下三种:现在学习的是第8页,共78页(1 1)数据信息数据信息 CPUCPU和和外外设设交交换换的的基基本本信信息息就就是是数数据据,分分为为数数字字量量、模拟量、开关量。模拟量、开关量。(2 2)状态信息状态信息 状状态态信信息息反反映映了了当当前前外外设设所所处处的的工工作作状状态态,是是外外设设发发给给CPUCPU的用来协调两者之间的操作。如的用来协调两者之间的操作。如READYREADY、BUSYBUSY。(3 3)控制信息控制信息 控控制
5、制信信息息是是CPUCPU发发给给外外设设的的,以以控控制制外外设设的的工工作作。如如外外设设的的启动信号和停止信号启动信号和停止信号。现在学习的是第9页,共78页注意注意数数据据信信息息、状状态态信信息息和和控控制制信信息息是是属属于于不不同同性性质质的的信信息,需要分别传送。息,需要分别传送。一个简单的一个简单的I/OI/O接口内部包含:接口内部包含:数据端口、状态和控制端口。数据端口、状态和控制端口。n CPUCPU通通过过数数据据端端口口从从外外设设读读入入数数据据或或向向外外设设输输出出数数据据n 从状态端口读入设备的当前状态从状态端口读入设备的当前状态n 通过控制端口向外设发出控制
6、命令通过控制端口向外设发出控制命令n 一一个个I/OI/O接接口口可可能能仅仅包包含含其其中中的的一一类类或或两两类类端端口口,当然也可能包含全部三类端口。当然也可能包含全部三类端口。现在学习的是第10页,共78页端口端口 I/OI/O接接口口通通常常设设置置有有若若干干个个寄寄存存器器,用用来来暂暂存存CPUCPU和和外外设设之之间间传传输输的的数数据据、状状态态和和控控制制信信息息,这这些些接接口口内内部部的的寄寄存存器器通通常常称称为为端端口口,分分别别为为数数据据端端口口、状状态态端端口口、控控制制端端口口。每每个个端端口口有有一一个个独独立立的的地地址址,CPUCPU可通过端口地址来
7、读可通过端口地址来读/写它们。写它们。现在学习的是第11页,共78页6.1.3 输入输入/输出端口的编址方式输出端口的编址方式 在在微微机机系系统统中中,CPU对对外外设设的的访访问问实实际际上上是是对对外外设设接接口口电电路路中中相相应应的的I/O端端口口进进行行访访问问,CPU用用相相应应的的读读写写指指令令来来对对端端口口进进行行读读或或写写。因因此此,对对这这些些端端口口必必须须指指定定相相应应的的地地址址码码,这就是这就是I/O端口的编址。端口的编址。I/O端口的编址通常有两种不同的方式:端口的编址通常有两种不同的方式:统一编址统一编址1独立编址独立编址2现在学习的是第12页,共78
8、页1.I/O端口统一编址端口统一编址又又称称为为存存储储器器映映射射编编址址方方式式,即即把把每每个个I/O端端口口都都当当作作一一个个存存储储单单元元看看待待,按按照照存存储储单单元元的编址方式统一安排端口的地址。的编址方式统一安排端口的地址。优优点点:可可以以用用访访问问内内存存的的方方法法来来访访问问I/O端端口口。由由于于访访问问内内存存的的指指令令种种类类丰丰富富、寻寻址址方方式式多多样样,因因此此这这种种编编址址方方式式为为访访问问外外设设带带来来了了很很大大的的灵灵活活性性。同同时时,I/O控控制制信信号号也也可可与与存存储储器器的的控控制制信信号号共共用用,从从而而给给应应用用
9、带带来来了了很很大大的方便。的方便。缺缺点点:外外设设占占用用了了一一部部分分内内存存地地址址空空间间,这这就就减减少少了了内内存存可可用用的的地地址址范范围围。此此外外从从指指令令上上不不易易区区分分当当前前是是对对内内存存进进行行操操作作还还是是对对外设进行操作。外设进行操作。u Intel MCS-51等系列的单片微型计算机采用统一编址方式。等系列的单片微型计算机采用统一编址方式。现在学习的是第13页,共78页2.I/O端口独立编址端口独立编址 内存地址空间和外设地址空间是相互独立的。内存地址空间和外设地址空间是相互独立的。8086/80888086/8088系系统统的的内内存存地地址址
10、范范围围为为00000H0FFFFF00000H0FFFFFH H,共共1M1M空空间间,而而外外设设端端口口的的地地址址范范围围为为0000H0FFFFH0000H0FFFFH,共共64K64K空空间间。这这两两个个地地址址空空间间相相互独立,互不影响。互独立,互不影响。CPUCPU在在寻寻址址内内存存和和外外设设时时,使使用用不不同同的的控控制制信信号号来来区区分分当当前前是是对对内存操作还是对内存操作还是对I/OI/O端口操作。例如端口操作。例如80868086的的M/IO#M/IO#。指令系统中单独设置有专用的指令系统中单独设置有专用的I/OI/O指令。指令。优优点点:将将输输入入输输
11、出出指指令令和和访访问问存存储储器器的的指指令令明明显显区区分分开开,使使程程序序清清晰晰,可可读读性性好好,而而且且I/OI/O指指令令长长度度短短,执执行行的的速速度度快快,也也不不占占用用内存空间;内存空间;I/OI/O地址译码电路较简单,地址译码电路较简单,缺缺点点:必必须须有有专专门门的的ININ和和OUTOUT指指令令,这这些些指指令令的的功功能能没没有有访访问问存存储储器器指指令令强强,也也增增加加了了指指令令系系统统的的规规模模。另另外外,CPUCPU要要能能提提供供区区分分存存储器和储器和I/OI/O的控制信号。的控制信号。现在学习的是第14页,共78页6.2 CPU与外设之
12、间的数据传送方式与外设之间的数据传送方式无条件方式无条件方式6.2.1查询方式查询方式6.2.2中断方式中断方式6.2.3DMA方式方式6.2.4现在学习的是第15页,共78页6.2.1 6.2.1 无条件传送方式无条件传送方式 无无条条件件传传送送方方式式主主要要用用于于外外部部控控制制过过程程的的各各种种动动作作是是固固定定的的、且且是是已已知知的的,控控制制的的对对象象是是一一些些简简单单的的、随随时时“准准备备好好”的的外外设设。也也就就是是说说,在在这这些些设设备备工工作作时时,随随时时都都可可以以接接收收CPU输输出出的的数数据据,或或者者它它们们的的数数据随时都可以被据随时都可以
13、被CPU读出。读出。它它不不需需要要查查询询外外设设状状态态,直直接接使使用用I IO O指指令令与与外外设设实实现现同同步步数数据据交交换换。采采用用这这种种控控制制方方式式的的接接口口电电路路和和控控制制程程序序都都比比较较简简单单。它它一一般般应应用用在在工工作作速速度度慢慢,接接口口电电路路较较简简单单的的外外设设,如如发发光光二二极极管管、开开关关等等,适适合合采采用用这这种方式。种方式。现在学习的是第16页,共78页6.2.2 6.2.2 条件传输方式条件传输方式程序查询传送方式程序查询传送方式 在在执执行行输输入入输输出出前前,要要先先查查询询接接口口中中状状态态寄寄存存器器的的
14、状状态态。n 输输入入时时,状状态态寄寄存存器器的的状状态态指指示示要要输输入入的的数数据据是是否否已经准备就绪已经准备就绪;n 输输出出时时,状状态态寄寄存存器器的的状状态态指指示示输输出出设设备备是是否否空空闲。闲。现在学习的是第17页,共78页查询传输方式查询传输方式(1)CPU(1)CPU从从状态端口状态端口中读取状态字;中读取状态字;(2)CPU(2)CPU检测状态字的相应位是否满足检测状态字的相应位是否满足“就就绪绪”条件,如果不满足,则转条件,如果不满足,则转(1)(1),再读取状态;再读取状态;(3)(3)如状态位表明外设已处于如状态位表明外设已处于“就绪就绪”状态,则通过状态
15、,则通过数据端口数据端口传输数据。传输数据。外设准备好?传送数据读取外设状态YN特特点点:利利用用查查询询方方式式进进行行数数据据输输入入输输出出的的过过程程中中,CPU将将大大量量时时间间耗耗费费在在读读取取和和检检测测外外设设状状态态上上,真真正正用用于于传传送送数数据据的的时时间间很很少少,这这样样大大大大降降低低了了CPU的的效效率。率。现在学习的是第18页,共78页例题:例题:某输入接口的状态端口地址为某输入接口的状态端口地址为86H,数据,数据端口地址为端口地址为87H,外部输入信息准备好状态标,外部输入信息准备好状态标志为志为D71(D7=0表示外设未准备好)用查表示外设未准备好
16、)用查询方式写出从外设读入询方式写出从外设读入100字节数据并存于内字节数据并存于内存存BUFFER开始的单元中。开始的单元中。现在学习的是第19页,共78页 LEA BX,BUFFER ;将BUFFER偏移地址送BX MOV CX,100 ;字节数ABC:IN AL,86H ;读状态端口(目的读状态位)TEXST AL,80H ;测试D7位是否为1(准备好)JZ ABC ;若D7=0未准备好,循环检测 IN AL,87H ;准备好,读数据端口 MOV BX,AL ;存到内存BUFFER缓冲区 INC BX ;修改地址指针 LOOP ABC ;未送完,继续传送现在学习的是第20页,共78页1)
17、输入指令输入指令IN格式:IN OPD,OPS功能:从端口(地址为n或在DX中)输入位数据到AL或输入16位数据到AX。IN AL,40H;从40H端口读入一个字节送ALMOV DX,8F00H;将 端 口 地 址 8F00H送 DXIN AL,DX;从8F00H端口读入一个字节送AL 现在学习的是第21页,共78页2)输出指令输出指令OUT格式:OUT OPD,OPS功功能能:从从AL输输出出8位位数数据据或或从从AX输输出出16位位数数据到端口据到端口(地址为地址为n或在或在DX中中)。OUT 40H,AL;将;将AL内容送内容送40H端口端口MOV DX,8F00H;将端口地址;将端口地
18、址8F00H送送DXOUT DX,AL;将;将AL内容送内容送8F00H端口端口现在学习的是第22页,共78页输入输入/输出指令在使用时应该注意输出指令在使用时应该注意输入输入/输出指令对标志寄存器没有影响。输出指令对标志寄存器没有影响。端端口口地地址址大大于于255时时,必必须须用用DX指指定定端端口口地址地址。现在学习的是第23页,共78页6.2.3 6.2.3 中断控制方式中断控制方式 在在中中断断传传输输方方式式下下,当当输输入入设设备备将将数数据据准准备备好好或或者者输输出出设设备备可可以以接接收收数数据据时时,便便可可以以向向CPUCPU发发出出中中断断请请求求,使使CPUCPU暂
19、暂时时停停止止执执行行当当前前程程序序,而而去去执执行行一一个个数数据据输输入入/输输出出的的中中断断服服务务程程序序,与与外外设设进进行行数数据据传传输输操操作作,中中断断程程序序执执行行完完后后,CPUCPU又又转转回回继继续执行原来的程序。续执行原来的程序。中中断断方方式式的的数数据据传传输输仍仍在在程程序序的的控控制制下下执执行行,也也可可称称为为程程序序中中断方式,适用于中、慢速外设的数据传输。断方式,适用于中、慢速外设的数据传输。利利用用中中断断控控制制方方式式,CPUCPU不不必必花花费费大大量量的的时时间间去去检检测测外外设设的的状态,提高了状态,提高了CPUCPU的效率。的效
20、率。现在学习的是第24页,共78页6.2.4 6.2.4 直接存储器存取直接存储器存取DMADMA方式方式 在高速的外设或成块交换数据的情况,采用程序控在高速的外设或成块交换数据的情况,采用程序控制方式进行数据的传输,是无法满足要求的。在这种情制方式进行数据的传输,是无法满足要求的。在这种情况下,采用况下,采用DMA方式。方式。(DMA-DMA-Direct Memory Access)DMA方方式式是是在在外外设设与与内内存存间间建建立立起起直直接接的的通通道道,CPU不不再再直直接接参参加加外外设设和和内内存存间间的的数数据据传传输输。但但系系统统需需要要进进行行DMA传传输输时时,将将C
21、PU对对地地址址和和数数据据及及控控制制线线的的管管理理权权交交由由DMA控控制制器器进进行行控控制制,当当完完成成了了一一次次DMA数数据据传传输输后后,再再将将这这个个控控制制权权还还给给CPU,这这些些工工作作都都是是由硬件自动实现的,并不需要程序进行控制。由硬件自动实现的,并不需要程序进行控制。现在学习的是第25页,共78页6.3 中断技术中断技术中断概述中断概述6.3.1中断的处理过程中断的处理过程6.3.28086/8088的中断的中断6.3.3现在学习的是第26页,共78页6.3.1 中断概述中断概述 中断源及其分类中断源及其分类1中断系统及其功能中断系统及其功能2中断优先级的确
22、定中断优先级的确定3现在学习的是第27页,共78页中断概念:中断概念:CPU正在执行某一段程序的过程中,如果外正在执行某一段程序的过程中,如果外界或内部发生了紧急事件,要求界或内部发生了紧急事件,要求CPU暂停正暂停正在运行的程序转去执行这个紧急事件的处理在运行的程序转去执行这个紧急事件的处理程序,待处理完后再回到被停止执行程序的程序,待处理完后再回到被停止执行程序的间断点,继续执行原来被打断了的程序,这间断点,继续执行原来被打断了的程序,这一过程称为中断。一过程称为中断。现在学习的是第28页,共78页1.中断源及其分类中断源及其分类 引起中断的事件就称为引起中断的事件就称为中断源中断源。分为
23、两大类:分为两大类:n内内部部中中断断源源:来来自自CPU内内部部,如如:CPU执执行行指指令令时时产产生生的的异异常常、特特殊殊操操作作引引起起的的异异常常以以及及由由程程序序员员安安排排在在程程序序中中的的INT n软软件件中中断断指指令令。中中断断的的控控制制完完全全是是在在CPU内部实现的。内部实现的。n外外部部中中断断源源:来来自自CPU外外部部,如如:如如键键盘盘、打打印印机机、定定时时器器时时间间到到、电电源源掉掉电电、硬硬件件出出错错等等。利利用用CPU的的两两条条中中断断输输入入信信号号线线INTR和和NMI来来告告诉诉CPU已已发发生生了了中中断断事事件。件。现在学习的是第
24、29页,共78页2.中断系统及其功能中断系统及其功能 实现中断响应及返回实现中断响应及返回实现优先权排队实现优先权排队高级中断源能中断低级的中断处理高级中断源能中断低级的中断处理现在学习的是第30页,共78页中中断断请请求求执执行行中中断断服服务务程程序序中断过程示意图中断过程示意图断断点点:主主程程序序中中被被暂暂停停执执行行的的指指令令的的地地址址称称为为断点。断点。执执行行主主程程序序继继续续执执行行主主程程序序响应中断响应中断返返回回主主程程序序现在学习的是第31页,共78页1)实现中断响应及返回实现中断响应及返回当某个中断源发出中断请求时,CPU能根据条件决定是否响应该中断请求。若允
25、许响应,则CPU必须在执行完现行指令后:n保护断点和现场(即把断点处的断点地址和各寄存器的内容与标志位的状态推入堆栈);n转到需要处理的中断服务程序的入口;n清除中断请求触发器。当处理完中断服务程序后,再恢复现场和断点地址,使CPU返回断点,继续执行主程序。现在学习的是第32页,共78页2)实现优先权排队实现优先权排队在实际系统中有多个中断源时,有可能出现两个或两个以上中断源同时提出中断请求的情况,而CPU同一时刻只能接受一个中断申请。这样就必须要设计者事先根据轻重缓急,给每个中断源一个中断优先权中断优先权。当多个中断源同时发出中断申请时,CPU能找到优先级别最高的中断源,响应它的中断请求。在
26、优先权级别最高的中断源处理了以后,再响应级别较低的中断源。现在学习的是第33页,共78页3)高级中断源能中断低级的中断处理高级中断源能中断低级的中断处理当CPU响应某一中断源的请求,在在进进行行中中断断处处理理时时,若有优先级别更高的中断源发出中断申请,则CPU要能中断正在进行中的中断服务程序,保留这个程序的断点和现场(类似于子程序嵌套),响应高级中断,在高级中断处理完以后,再继续执行被中断的中断服务程序。这就形成了中断嵌套,如图6.12所示。两个中断形成的是两重中断(或两级嵌套),还可以进行多重中断(或多级嵌套)。现在学习的是第34页,共78页图图6.12 中断嵌套过程中断嵌套过程现在学习的
27、是第35页,共78页6.3.2 中断的处理过程中断的处理过程中断请求中断请求1中断响应中断响应2中断处理中断处理3现在学习的是第36页,共78页1.中断请求中断请求外设需要CPU服务时,首先要发出一个有效的中断请求信号送到CPU的中断输入端。中断请求信号分为边沿触发和电平触发。一般来说,CPU能够即时予以响应的中断可以采用边沿触发,而不能即时响应的中断则应采用电平触发,否则中断请求信号就会丢失。8088/8086CPU的NMI为边沿触发,而INTR为电平触发。为了保证产生的中断能被CPU处理,INTR中断请求信号应保持到该请求被CPU响应为止。CPU响应后,INTR信号还应及时撤除,以免造成多
28、次响应。现在学习的是第37页,共78页2.中断响应中断响应 响应中断请求的响应中断请求的3 3个条件个条件:(1)一条指令执行结束。(2)CPU处于开中断状态。(3)没有总线请求。在复位(RESET)、总线保持(HOLD)等总线请求时,CPU不工作,当然就不能响应中断。中断响应时,CPU除了要向中断源发出中断响应信号外,还要自动完成下述3项工作:(1)关关闭闭中中断断。CPU响应中断时,需立即关中断(使IF=0),以保证保护现场、断点和获取中断入口地址等工作不受影响。(2)保保护护现现场场和和断断点点。将标志寄存器FR、断点的段基址(CS值)和偏移地址(IP值)压入堆栈,以保证中断结束后能正常
29、返回被中断的程序。(3)获得中断服务程序入口获得中断服务程序入口,转入中断服务程序。现在学习的是第38页,共78页3.中断处理中断处理 保保护护现现场场。保护现场是指把中断服务程序中要用到的寄存器的原内容压入堆栈保存起来。开开中中断断。CPU响应中断时会自动关闭中断(使IF=0)。若进入中断服务程序后允许中断嵌套,则需用指令开中断(使IF=1)。执行中断处理程序。执行中断处理程序。完成具体的中断处理。关中断。关中断。确保有效地恢复被中断程序的现场。恢恢复复现现场场。就是把先前保护的现场进行恢复,也即把所保存的有关寄存器内容按入栈的相反顺序从堆栈中弹出,使这些寄存器恢复到中断前的状态。开开中中断
30、断返返回回。其操作正好是CPU硬件在中断响应时自动保护硬件现场和断点的逆过程,即CPU会自动地将堆栈内保存的断点信息和标志信息弹出到IP、CS和FR中,保证被中断的程序从断点处继续往下执行。现在学习的是第39页,共78页6.3.3 8086/8088的中断的中断8086/8088系统中给每种中断都赋予一个中断类型码(或称中断号),编号为0255。CPU可根据中断类型码的不同来识别不同的中断源。中断类型中断类型1中断优先级顺序中断优先级顺序2中断向量表中断向量表3中断处理过程中断处理过程4现在学习的是第40页,共78页1.中断类型中断类型 8086/8088系统的中断源:n外部中断:来自CPU外
31、部n内部中断:来自CPU内部 现在学习的是第41页,共78页1)外部中断外部中断也称为硬件中断,它是由外部硬件或外设接口产生的。8086/8088CPU为外部设备提供了两条中断信号线NMI和INTR。非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断现在学习的是第42页,共78页(1)非屏蔽中断非屏蔽中断由NMI引脚上出现的上升沿触发,它不受中断允许标志IF的控制,其中断类型码固定为2。CPU接收到非屏蔽中断请求信号后,会在执行完当前指令后立即响应中断请求而进入相应的中断处理。非屏蔽中断通常用来处理系统中出现的重大故障或紧急情况。现在学习的是第43页,共78页(2)可屏蔽中断可屏蔽中断从CPU的INTR
32、端引入,高电平有效。可屏蔽中断受中断允许标志位IF的控制,只有当IF=1,CPU才会响应INTR请求。如果IF=0,即使中断源有中断请求,CPU也不会响应。在微型计算机中,外部设备的中断请求是通过中断控制器8259A来进行统一管理的,由8259A决定是否允许一个外设向CPU发出中断请求。现在学习的是第44页,共78页2)内部中断内部中断内部中断是CPU执行了某些指令或者软件对标志寄存器中某个标志位进行设置而产生的,由于它与外部硬件电路完全无关,故也称为软件中断。在8086/8088 CPU中,内部中断可分为5种类型:n除法出错中断n单步中断n断点中断n溢出中断n中断指令INT n以以上上所所述
33、述内内部部中中断断的的类类型型码码均均是是固固定定,除除单单步步中中断断外外,其他的内部中断不受其他的内部中断不受IF状态标志影响。状态标志影响。现在学习的是第45页,共78页(1)除法出错中断除法出错中断在执行除法指令时,若发现除数为0或商超过了结果寄存器所能表示的最大范围,则立即产生一个中断类型码为0的中断。现在学习的是第46页,共78页(2)单步中断单步中断8086/8088 CPU的标志寄存器中有一位陷阱标志TF。CPU每执行完一条指令都会检查TF的状态。若发现TF=1,则CPU就产生中断类型码为1的中断,使CPU转向单步中断的处理程序。单步中断广泛地用于程序的调试。现在学习的是第47
34、页,共78页(3)断点中断断点中断8086/8088指令系统中有一条专用于设置断点的指令INT 3。CPU执行该指令就会产生一个中断类型码为3的中断。INT 3指令是单字节指令,因而它能很方便地插入程序的任何地方,专门用于在程序中设置断点来调试程序,它也称为断点中断,插入INT 3指令之处便是断点。在断点中断服务程序中,可显示有关的寄存器、存储单元等内容,以便程序员分析到断点为止程序运行是否正确。现在学习的是第48页,共78页(4)溢出中断溢出中断若算术指令的执行结果发生溢出(OF=1),则执行INTO指令后立即产生一个中断类型码为4的中断。溢出中断为程序员提供了处理运算溢出的手段,INTO指
35、令通常和算术运算指令配合起来使用。现在学习的是第49页,共78页(5)中断指令中断指令INT nINT n是用户自定义的软件中断指令,CPU执行中断指令INT n也会引起内部中断,其中断类型码由指令中的n指定。现在学习的是第50页,共78页2.中断优先级顺序中断优先级顺序 现在学习的是第51页,共78页80 x8680 x86微机可处理微机可处理256256个不同的中断请求。个不同的中断请求。80 x8680 x86将将256256个个中中断断统统一一编编号号为为02550255,称称作作中中断断类类型型号号,中断类型号是中断源的唯一标识。,中断类型号是中断源的唯一标识。在在80 x8680
36、x86中中断断系系统统中中,中中断断响响应应时时自自动动获获得得中中断断类类型型号号,并并据据此此得得到到该该中中断断服服务务程程序序入入口口地地址址,然然后后转转去去执行中断服务程序。执行中断服务程序。问题问题:中断类型号和中断服务程序的入口地址(中断向中断类型号和中断服务程序的入口地址(中断向量)如何联系?量)如何联系?中断服务程序的入口地址叫做中断服务程序的入口地址叫做中断向量中断向量。现在学习的是第52页,共78页中断类型号和中断向量的对应关系中断类型号和中断向量的对应关系现在学习的是第53页,共78页3.中断向量表中断向量表 每个中断源都有一个中断类型码。中断类型码长度为一个字节,故
37、8086/8088最多允许处理256种类型的中断(中断类型码为0255)。中断向量表位于内存的最低1K字节(即内存中00000H003FFH区域),用以存放256个中断向量,即256个中断的服务程序入口地址。每个中断向量占4个字节,其中低位字(2个字节)存放中断服务程序入口地址的偏移量,高位字(2个字节)存放中断服务程序入口地址的段地址。中断向量在表中的存放地址=4中断类型码n取连续的4n和4n+l字节单元的内容装入IP,取4n+2和4n+3单元的内容装入CS,即可转入中断服务程序。现在学习的是第54页,共78页中中断断向向量量表表现在学习的是第55页,共78页4.中断处理过程中断处理过程中断
38、类型码的获取中断类型码的获取中断类型码的获取中断类型码的获取中断处理中断处理现在学习的是第56页,共78页1)中断类型码的获取中断类型码的获取有两种方法获取中断类型码有两种方法获取中断类型码:对于软件中断:类型码为0、1、3、4的中断类型码由系统自动形成;对于INT n指令,类型码由指令指定。对于硬件中断:若为NMI中断,则由系统自动产生中断类型码2;若为INTR中断,则CPU转入2个连续周期的中断响应周期,并在第2个中断响应周期采样数据总线,获取中断类型码。现在学习的是第57页,共78页2)中断处理中断处理将类型码乘4,计算出中断向量的地址。硬件现场保护。即将标志寄存器F压入堆栈,以保护当前
39、指令执行结果的特征。清除IF和TF标志,屏蔽新的INTR中断和单步中断。保存断点,即把断点处的IP和CS值压入堆栈,先压入CS值,再压入IP值。根据计算出来的地址从中断向量表中取出中断服务程序的入口地址(段和偏移),分别送至CS和IP中。转入中断服务程序执行。进入中断服务程序后,首先要保护在中断服务程序中要使用的寄存器内容,然后进行相应的中断处理,现场恢复与中断返回。在中断返回前恢复保护的寄存器内容,最后执行中断返回指令IRET。IRET的执行将使CPU按次序恢复断点处的IP、CS和标志寄存器,从而使程序返回到断点处继续执行。图6.17现在学习的是第58页,共78页中中断断处处理理顺顺序序流流
40、程程现在学习的是第59页,共78页现在学习的是第60页,共78页6 64 4 中断控制器中断控制器8259A8259A6.4.1 8259A6.4.1 8259A的内部结构及引脚分配的内部结构及引脚分配IR0IR0IR1IR1IR2IR2IR7IR7中断控制器中断控制器8259A功能:功能:(1)一一片片8259A可可管管理理8个个中中断断请请求求,具具有有8级级优优先先权权控控制制,并并能能把把当当前前优优先先权权最最高高的的中中断断请请求求送送到到CPU的的INTR端;端;(2)每一级都可以由编程进行屏蔽或开放每一级都可以由编程进行屏蔽或开放(3)通过级连可以扩展至通过级连可以扩展至64级
41、级(4)在中断响应周期,在中断响应周期,8259A可以提供相应的中断类型号;可以提供相应的中断类型号;(5)通过编程可选择通过编程可选择8259A的各种工作方式。的各种工作方式。现在学习的是第61页,共78页(2)(2)中断服务寄存器中断服务寄存器ISRISR ISRISR是是一一个个8 8位位寄寄存存器器,用用于于寄寄存存所所有有正正在在被被服服务务的的中中断断级级。在在中断响应的第一个中断响应的第一个INTA#INTA#周期,使对应的周期,使对应的ISRISR位置位置1 1而而IRRIRR位清位清0 0。(1)(1)中断请求寄存器中断请求寄存器IRRIRR 保保存存从从IR0IR7来来的的
42、中中断断请请求求信信号号,某某位位=1表表示示对对 应应的的IRi有中断请求有中断请求。(4)(4)优先权电路优先权电路 用用于于识识别别和和管管理理IRRIRR中中各各位位的的优优先先权权级级别别。能能进进行行优优先先级级判判别,把未被屏蔽的最高优先级的中断请求送到别,把未被屏蔽的最高优先级的中断请求送到CPU。(3)(3)中断屏蔽寄存器中断屏蔽寄存器IMRIMR IMRIMR是是一一个个8 8位位寄寄存存器器,存存放放中中断断屏屏蔽蔽字字,某某位位=1=1表表示示对对应应的的IRiIRi输入被屏蔽,为输入被屏蔽,为0 0开放该中断请求。可通过指令设置。开放该中断请求。可通过指令设置。1.1
43、.内部结构内部结构现在学习的是第62页,共78页(5)(5)控制逻辑电路控制逻辑电路 控控制制逻逻辑辑电电路路根根据据CPUCPU对对8259A8259A编编程程设设定定的的工工作作方方式式管管理理8259A8259A,负负责责发发出出INTRINTR和和接接收收INTA#INTA#,并并使使INTA#INTA#转转化为内部所需的各种控制信号。化为内部所需的各种控制信号。(6)(6)读读/写电路写电路 读读/写写电电路路可可接接收收CPUCPU对对8259A8259A的的初初始始化化命命令令字字ICWICW和和操操作作命命令令字字OCWOCW,并并将将其其存存入入相相应应的的端端口口寄寄存存器
44、器,来来规规定定8259A8259A的的工工作作方方式式和和控控制制模模式式;也也可可以以向向CPUCPU提提供供各各端端口口寄存器的内容。寄存器的内容。(7)(7)数据总线缓冲器数据总线缓冲器 连连接接系系统统总总线线和和8259A8259A的的内内部部总总线线,用用于于传传输输8259A8259A的控制字或状态字,以及中断类型号。的控制字或状态字,以及中断类型号。(8)(8)级连缓冲级连缓冲/比较器比较器 控控制制多多片片8259A8259A的的级级连连,扩扩展展中中断断级级。多多片片8259A8259A级级连连时,一片为主,其余为从。最多可时,一片为主,其余为从。最多可9 9片级连,扩展
45、片级连,扩展6464级中断。级中断。现在学习的是第63页,共78页2.8259A2.8259A的引脚及其功能的引脚及其功能8259A8259A是是2828脚双列直插式芯片脚双列直插式芯片。D D7 7 D D0 0:双向三态数据线,直接与系统数据总线低双向三态数据线,直接与系统数据总线低8 8位位相连;相连;IRQ0IRQ7:IRQ0IRQ7:中断请求输入线,与外设相连,优先权中断请求输入线,与外设相连,优先权0 0至至7 7递减;递减;INT:INT:中断请求输出线,与中断请求输出线,与CPUCPU的的INTRINTR相连;相连;INTA:INTA:中断允许线,接收来自中断允许线,接收来自C
46、PUCPU的中断响应信号的中断响应信号INTAINTA,与,与CPUCPU的的INTAINTA相连。相连。现在学习的是第64页,共78页现在学习的是第65页,共78页CSCS,:片选信号端。片选信号端。WRWR:写信号控制端。:写信号控制端。RDRD:读信号控制端。:读信号控制端。CAS2CAS0:CAS2CAS0:级连信号线,主片为输出,从片为输入;级连信号线,主片为输出,从片为输入;SP/ENSP/EN:主从主从/允许缓冲线,具有双向功能;允许缓冲线,具有双向功能;V VCCCC,GNDGND:分别接分别接+5v+5v电源和接地电源和接地A0A0:端端口口地地址址选选择择信信号号,输输入入
47、,由由8259A8259A片片内内译译码码,选选择择内内部部寄寄存存器器。一一片片8259A8259A有有2 2个个端端口口地地址址,一一个个为为偶偶地地址址,另另一一个个为为奇奇地地址址。A0=0A0=0选选择择偶偶地地址址端端口,口,A0=1A0=1选择奇地址端口。选择奇地址端口。现在学习的是第66页,共78页3 3、8259A 8259A中断响应顺序中断响应顺序 8259A对外部中断请求的响应和处理过程如下:对外部中断请求的响应和处理过程如下:(1)当当中中断断请请求求输输入入线线IRQ0IRQ7中中有有一一条条或或多多条条变变高高时时,则则中断请求寄存器中断请求寄存器IRR的相应位置的
48、相应位置“1”。(2)未未被被屏屏蔽蔽的的中中断断请请求求信信号号进进入入优优先先权权判判别别器器,优优先先级级判判定定电电路路选选出出优优先先级级最最高高的的中中断断请请求求,控控制制电电路路由由INT引引脚脚向向CPU发发出出中中断断请求信号。请求信号。(3)如如CPU是是处处于于开开中中断断状状态态,则则在在当当前前指指令令执执行行完完后后,用用INTA#信信号号作为响应。作为响应。(4)8259A在在接接收收到到CPU的的INTA#信信号号后后,使使最最高高优优先先级级的的ISR位位置置“1”,而而相相应应的的IRR位位清清“0”。但但在在该该中中断断响响应应周周期期中中,8259A并
49、不向系统总线送任何信息。并不向系统总线送任何信息。现在学习的是第67页,共78页8259A8259A响应中断的过程响应中断的过程(5)CPU(8086/8088和和80X86)输输出出第第二二个个INTA#信信号号,启启动动第第二二个个中中断断响响应应周周期期。在在此此周周期期中中,8259A向向数数据据总总线线输输送送一一个个8位位的的中中断断类类型型号号;CPU读读取取此此类类型型号号后后将将它它乘乘以以4(左左移移2位位),即即可可从从中中断断服服务务程程序序向向量量表表(即即入入口口地地址址表表)中中取取出出中中断断服服务务程程序序的的入入口口地地址址,包包括括段段地地址址和和段段内内
50、偏偏移移地地址址。据据此此CPU便便可转入中断服务程序。可转入中断服务程序。现在学习的是第68页,共78页6.4.2 8259A的工作方式1.1.中断嵌套方式中断嵌套方式 8259A 8259A有两种中断嵌套方式:有两种中断嵌套方式:(1)(1)一般全嵌套方式一般全嵌套方式 一一般般全全嵌嵌套套方方式式是是8259A8259A最最常常用用的的工工作作方方式式,初初始始化化后后的的默默认认工工作作方方式式。此此时时中中断断优优先先权权的的级级别别是是固固定定的的,IR0IR0 IR7IR7递递减减。CPUCPU响应中断时,响应中断时,屏蔽掉与它同级或低级的中断请求。屏蔽掉与它同级或低级的中断请求