中断效劳程序流程图.docx
- 文档编号:25016379
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:23
- 大小:112.54KB
中断效劳程序流程图.docx
《中断效劳程序流程图.docx》由会员分享,可在线阅读,更多相关《中断效劳程序流程图.docx(23页珍藏版)》请在冰豆网上搜索。
中断效劳程序流程图
第一讲:
第六章 I/O接口原理-接口、端口、编址
回顾:
微机系统的层次结构,CPU、主机、接口电路及外部设备之间的结构关联,输入/输出的一样概念。
重点和纲要:
微机系统主机与外部设备之间的数据传送,包括I/O端口的寻址方式,输入/输出的传送操纵方式。
教学方法、实施步骤
时间分配
教学手段
回顾
5”×2
板书
计算机
投影仪
多媒体课件等
讲授
40”×2
提问
3”×2
小结
2”×2
教学内容:
6.1输入/输出数据的传输操纵方式
一、输入/输出的一样概念
1.引言
输入/输出是微机系统与外部设备进行信息互换的进程。
输入/输出设备称为外部设备,与存储器相较,外部设备有其本身的特点,存储器较为标准,而外部设备那么比较复杂,性能的离散性比较大,不同的外部设备,其结构方式不同,有机械式、电动式、电子式等;输入/输出的信号类型也不相同,有数字信号,也有模拟信号;有电信号,也有非电信号;输入/输出信息的速度也相差专门大。
因此,CPU与外部设备之间的信息互换技术比较复杂。
CPU与外设之间的信息互换,是通过它们之间接口电路中的I/O端口来进行的,由于同一个外部设备与CPU之间所要传送的信息类型不同,方向不同,作用也不一样(例如数据信息、状态信息、操纵信息、输入/输出等),因此接口电路中能够设置多个端口来别离处置这些不同的信息。
2.输入/输出端口的寻址方式
微机系统采纳总线结构形式,即通过一组总线来连接组成系统的各个功能部件(包括CPU、内存、I/O端口),CPU、内存、I/O端口之间的信息互换都是通过总线来进行的,如何区分不同的内存单元和I/O端口,是输入/输出寻址方式所要讨论解决的问题。
依照微机系统的不同,输入/输出的寻址方式通常有两种形式:
(1).存储器对应的输入、输出寻址方式
这种方式又称为存储器统一编址寻址方式或存储器映象寻址方式。
方式:
把外设的一个端口与存储器的一个单元作一样对待,每一个I/O端口都有一个确信的端口地址,CPU与I/O端口之间的信息互换,与存储单元的读写进程一样,内存单元与I/O端口的不同,只在于它们具有不同的的地址。
优势:
①CPU对I/O端口的读/写操作能够利用全数存储器的读/写操作指令,也能够用对存储器的不同寻址方式来对I/O端口中的信息,直接进行算术、逻辑运算及循环、移位等操作。
②内存与外设地址的分派,能够用统一的散布图。
③不需要专门的输入、输出操作指令。
缺点:
1内存与I/O端口统一编址时,在地址总线根数必然的情形下,使系统中实际能够直
接寻址的内存单元数减少。
②一样情形下,系统中I/O端口数远小于内存单元数,因此在用直接寻址方式来寻址这些端口时,要表示一个端口地址,必需用与表示内存单元地址相同的字节数,使得指令代码较长,相应地读/写执行时刻也较长,这对提高系统的运行速度是不利的。
Mortorola公司的M6800CPU等均采纳这种寻址I/O端口的方式。
3.CPU与外设之间所传送的信息类型
CPU与I/O端口之间所互换的信息,能够有以下几种类型:
①数据信息:
包括数字量、模拟量、开关量等,能够输入、也能够输出
2状态信息:
这是I/O端口送给CPU的有关本端口所对应的外设当前状态的信息。
供CPU进行分析、判定、决策。
③操纵信息:
这是CPU送给I/O端口的操纵命令,使相应的外部设备完成特定的操作。
数据信息、状态信息和操纵信息是不同类型的信息,它们所起的作用也不一样。
但在8086/8088微机系统中,这三种不同类型的信息的输入、输出进程是相同的。
为了加以区分,能够使它们具有不同的端口地址,在端口地址相同的情形下,能够规定操作的顺序,或在输入/输出的数据中设置特点位。
二、CPU与外设之间输入/输出数据的传输操纵方式
CPU与外设之间传输数据的操纵方式通常有三种:
程序方式、中断方式和DMA方式。
1.程序方式
指用输入/输出指令,来操纵信息传输的方式,是一种软件操纵方式,根
据程序操纵的方式不同,又能够分为无条件传送方式和条件传送方式。
1无条件传送方式
条件:
利用程控方式与外设互换信息时,若是输入/输出的时刻,都能够保证外设老是处于“预备好”状态,那么能够直接利用输入/输出指令进行信息的输入/输出操作。
图5-1
如图5-1,从硬件电路上来看:
输入:
加三态缓冲器(操纵端由地址译码信号和
信号选中,CPU用IN指令)
输出:
加锁存器(操纵端由地址译码信号和
信号选中,CPU用OUT指令)
这种方式下的硬、软件设计都比较简单,但应用的局限性较大,因为很难保证外设在每次信息传送时都处于“预备好”状态,一样只用在诸如开关操纵、七段数码管的显示操纵等场合。
2条件传送方式
又称查询方式,即通进程序查询相应设备的状态,假设状态不符合,那么CPU不能进行输入/输出操作,需要等待;只有当状态信号符合要求时,CPU才能进行相应的输入/输出操作。
一样外设均能够提供一些反映其状态的信号,如对输入设备来讲,它能够提供“预备好”(“READY”)信号,“READY”=1表示输入数据已预备好。
输出设备那么提供“忙”(“BUSY”)信号,“BUSY”=1表示当前时刻不能接收CPU来的数据,只有当“BUSY”=0时,才说明它能够同意来自于CPU的输出数据。
进程:
输入操作的程序流程如图5-2所示:
对READY的状态查询,是通过读状态端口的相应位来实现的,输出的情形亦大致相同,这种传送操纵方式的最大优势是,能够保证输入/输出数据的正确性。
输入接口
以输入设备将数据送入锁存,发选通信号开始,→READY=1→CPU查询(读READY)→读数据→清除READY。
见图5-3图5-2
输出接口
CPU送数据至锁存器,发选通信号,→a。
通知外设取数据;→b。
BUSY→输出设备取完数据→ACK→清BUSY→CPU查询。
见图5-4
图5-3
图5-4
例1假设从某输入设备上输入一组数据送缓冲区,接口电路如图5-3,假设缓冲区已满那么输出一组信息“BOFFEROVERFLOW”,然后终止。
设该设备的启动地址为0FCH,数据端口为0F8H,状态端口为FAH。
程序如下:
DATASEGMENT
MESS1DB“BUFFEROVERFLOW”,“$”
BUFFDB60DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETBUFF ;送缓冲区指针
MOVCX,60 ;送计数初值
OUT0FCH,AL ;启动设备
WAIT:
INAL,OFAH ;查询状态,假设为0,那么等待
TESTAL,01H
JZWAIT
INAL,0F8H ;输入数据
MOV[BX],AL
INCBX
LOOPWAIT ;检测缓冲区是不是满,不满再输入
MOVDX,OFFSETMESS1 ;缓冲区满,输出标志字符串
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
优先级问题
当CPU需对多个设备进行查询时,就显现了所谓的优先级问题,即究竟先为哪个设备效劳,一样来讲,在这种情形下都是采纳连番查询的方式来解决,如图5-5所示
这时的优先级是很明显的,即先查图5-5
询的设备具有较高的优先级。
但这种优先级治理方式,也存在着一个问题,即某设备的优先级是转变的,如当为设备B效劳以后,这时即便A已预备好,它也不睬睬,而是继续查询C,也确实是说A的优先地位并非巩固(即不能保证随时处于优先)。
为了保证A随时具有较高的优先级,可采纳加标志的方式,当CPU为B效劳完以后,先查询A是不是预备好,假设现在发觉A已预备好,当即转向对A的查询效劳,而不是为C设备效劳。
第二讲:
I/O接口原理-中断方式、DMA方式
回顾:
微机系统主机与外部设备之间的数据传送,包括I/O端口的寻址方式,输入/输出的传送操纵方式。
重点和纲要:
I/O接口原理(中断方式、DMA方式)。
教学方法、实施步骤
时间分配
教学手段
回顾
5”×2
板书
计算机
投影仪
多媒体课件等
讲授
40”×2
提问
3”×2
小结
2”×2
教学内容:
1.中断传送方式
(1)什么缘故要采纳中断传送方式
从查询式的传输进程能够看出,它的优势是硬件开销小,利用起来比较简单。
但在此方式下,CPU要不断地查询外设的状态,当外设未预备好时,CPU就只能循环等待,不能执行其它程序,如此就浪费了CPU的大量时刻,降低了主机的利用率。
为了解决那个矛盾,咱们提出了中断传送方式:
即当CPU进行主程序操作时,外设的数据已存入输入端口的数据寄放器;或端口的数据输出寄放器已空,由外设通过接口电路向CPU发出中断请求信号,CPU在知足必然的条件下,暂停执行当前正在执行的主程序,转入执行相应能够进行输入/输出操作的子程序,待输入/输出操作执行完毕以后CPU即返回继续执行原先被中断的主程序。
如此CPU就幸免了把大量时刻花费在等待、查询状态信号的操作上,使其工作效率得以大大地提高。
能够向CPU发出中断请求的设备或事件称为中断源。
微机系统引入中断机制后,使CPU与外设(乃最多个外设)处于并行工作状态,便于实现信息的实时处置和系统的故障处置。
中断方式的原理示用意如图5-6所示。
(2)中断方式下的接口电路图5-6
中断方式提高了CPU的工作效率,可是它同时也提高了系统的硬件开销。
因为系统需增加含有中断功能接口电路,用来产生中断请求信号。
以输入方式为例,接口电路如图5-7所示。
图5-7
数据输入的进程:
当外设发STB→数据入锁存器,中断请求触发器置1→假设没有屏蔽那么产生INTR→CPU知足条件(许诺中断;指令执行完)发
→(进入中断效劳子程序)读数据,发
,和地址→清中断请求触发器,数据送D0~D7。
(输出进程请自己试探)
(3)中断优先级
问题的提出:
当系统中有多个设备提出中断请求时,就有一个该响应谁的问题,也确实是一个优先级的问题,解决优先级的问题一样可有三种方式:
软件查询法、简单硬件方式及专用硬件方式。
下面别离介绍:
①软件查询法
只需有简单的硬件电路,如将A、B、C三台设备的中断请求信号“或”后作为系统INTR,这时,A、B、C三台设备中只要至少有一台设备提出中断请求,都能够向CPU发中断请求。
进入中断效劳子程序后,再用软件查询的方式别离对不同的设备的效劳,查询程序的设计思想同查询式,查询的前后顺序就给出了设备的优先级,框图如下图。
②简单硬件方式
以链式中断优先权排队电路为例,
大体设计思想:
将所有的设备连成一条链,靠近CPU的设备优先级最高,越远的设备优先级别越低,那么发出中断响应信号,假设级别高的设备发出了中断请求,在它接到中断响应信号的同时,封锁其后的较低级设备使得它们的中断请求不能响应,只有等它的中断效劳终止以后才开放,许诺为低级的设备效劳。
如下图。
③专用硬件方式
采纳可编程的中断操纵器芯片,如Intel8259A。
图5-11 中断操纵器的系统连接
有了中断操纵器以后,CPU的INTR和
引脚再也不与接口直接相连,而是与中断操纵器相连,外设的中断请求信号通过IR0~IR7进入中断操纵器,经优先级治理逻辑确以为级别最高的那个请求的类型号会通过中断类型寄放器在当前中断效劳寄放器的某位上置1,并向CPU发INTR请求,CPU发出
信号后,中断操纵器将中断类型码送出。
在整个进程中,优先级较低的中断请求都受到阻塞,直到较高级的中断效劳完毕以后,当前效劳寄放器的对应位清0,较低级的中断请求才有可能被响应。
电路如图图5-11所示。
利用中断操纵器能够通过编程来设置或改变其工作方式,利用起来方便灵活。
(4).中断响应
中断源向CPU发出中断请求,假设优先级别最高,CPU在知足必然的条件下,能够中断当前程序的运行,爱惜好被中断的主程序的断点及现场信息。
然后,依照中断源提供的信息,找到中断效劳子程序的入口地址,转去执行新的程序段,这确实是中断响应。
注意:
CPU响应中断是有条件的,如内部许诺中断、中断未被屏蔽、当前指令执行完等。
(5)中断效劳子程序
CPU响应中断以后,就会中止当前的程序,转去执行一个中断效劳子程序,以完成为相应设备的效劳。
中断效劳子程序的一样结构如图5-12所示。
①爱惜现场(由一系列的PUSH指令完成)。
目的是为了爱惜那些与主程序中有冲突的寄放器,(如AX,BX,CX等),若是中断效劳子程序中所利用的寄放器与主程序中所利用的寄放器等没有冲突的话,这一步骤能够省略。
3开中断(由STI指令实现)。
目的是为了能实现中断的嵌套。
4中断效劳图5-12中断效劳子程序的流程
5恢复现场(由一系列的POP指令完成)。
是与爱惜现场对应的,但要注意数据恢复的顺序,以避免混乱。
6返回(利用中断返回指令IRET)。
不能利用一样的子程序返回指令RET,因为IRET指令除能恢复断点地址外,还能恢复中断响应时的标志寄放器的值,而这后一个动作是RET指令不能完成的。
中断的工作进程可分为五大步骤:
即中断请求、中断判优、中断响应、中断效劳和中断返回。
2.DMA传送方式
利用中断进行信息传送,能够大大提高CPU的利用率,可是其传送进程必需由CPU进行监控。
每次中断,CPU都必需进行断点及现场信息的爱惜和恢复操作,这些都是一些额外的操作,会占用必然的CPU时刻。
若是需要在内存的不同区域之间,或在内存与外设端口之间进行大量信息快速传送的话,用查询或中断方式均不能知足速度上的要求,这时应采纳直接数据通道传送,即DMA数据传送方式。
DMA(DirectMemoryAccess)意为直接数据传送,它是在内存的不同区域之间,或在内存与外设端口之间直接进行数据传送,而不通过CPU中转的一种数据传送方式,能够大大提高信息的传送速度。
DMA方式传送的要紧步骤(见图5-13的流程图)
①外设预备就绪时,向DMA操纵器发DMA请求,DMA操纵器接到此信号后,向CPU发DMA请求;
②CPU接到HOLD请求后,若是条件许诺(一个总线操作终止),那么发出HLDA信号作为响应,同时,舍弃对总线的操纵;
③DMA操纵器取得总线操纵权后,往地址总线发送地址信号,每传送1个字节,就会自动修改地址寄放器的内容,以指向下一个要传送的字节;
④每传送一个字节,字节计数器的值减1,当减到0时,DMA进程终止;图5-13DMA的工作流程图
⑤DMA操纵器向CPU发终止信号,将总线操纵权交回CPU。
DMA传送操纵方式,解决了在内存的不同区域之间,或内存与外设之间大量数据的快速传送问题,代价是需要增加专门的硬件操纵电路,称为DMA操纵器,其复杂程度与CPU相当。
习题与试探:
1.CPU与外设之间的数据传输操纵方式有哪几种?
何谓程序操纵方式?
它有哪两种
大体方式?
请别离用流程图的形式描述出来。
2.试从程序转移的角度比较中断操纵与子程序挪用这两种处置进程,它们有哪些全然
区别?
又有哪些相似的地方?
3.用查询式将DATA开始的存贮区的100个字节数据在FCH端口输出,完成程序,
状态端口地址为:
FFH。
4.什么是接口?
什么是端口?
在8086/8088微机系统中,CPU是如何实现端口寻址的?
5.简述链式中断优先级排队电路的工作进程?
6.中断处置的要紧步骤有哪些?
试说明每一步的要紧动作。
第三讲:
6.38086/8088中断系统
回顾:
微机系统主机与外部设备之间的数据传送操纵方式,中断的概念及处置进程。
重点和纲要:
8086/8088中断系统。
教学方法、实施步骤
时间分配
教学手段
回顾
5”×2
板书
计算机
投影仪
多媒体课件等
讲授
35”×2
提问
3”×2
小结
2”×2
讨论
5”×2
教学内容:
6.38086/8088中断系统
一、中断分类及中断类型码
中断源:
引发中断的缘故或发出中断请求的设备称为中断源。
1.中断的分类
共分为两类:
硬件中断和软件中断
①硬件中断:
即通过外部的硬件产生的中断,如打印机、键盘等,有时也称为外部中断。
硬件中断又可分为两类:
可屏蔽中断和不可屏蔽中断。
不可屏蔽中断:
由NMI引脚引入,它不受中断许诺标志的阻碍,每一个系统中仅许诺有一个,都是用来处置紧急情形的,如掉电处置。
这种中断一旦发生,系统会当即响应;
可屏蔽中断:
由INTR引脚引入,它受中断许诺标志的阻碍,也确实是说,只有当IF=1时,可屏蔽中断才能进入,反之那么不许诺进入,可屏蔽中断可有多个,一样是通过优先级排队,从多个中断源当选出一个进行处置。
②软件中断(内部中断):
即依照某条指令或对标志寄放器中某个标志的设置而产生,它与硬件电路无关,常见的如除数为0,或用INTn指令产生。
溢出中断由INT0指令引发
断点中断由INT3指令引发
单步由标志TF引发↘不对应指令
除0由计算结果引发↙不对应指令
2.中断类型码:
8086/8088为每一个中断源分派了一个中断类型码,其取值范围为0~255,即可处置56种中断。
其中包括软件中断,系统占用的中断和开放给用户利用的中断。
二、中断向量和中断向量表
系统处置中断的方式很多,处置中断的步骤中最要紧的一步确实是如何依照不同的中断源进入相应的中断效劳子程序,目前用的最多的确实是向量式中断。
中断向量:
把各个中断效劳子程序的入口都称为一个中断向量;
中断向量表:
将这些中断向量按必然的规律排列成一个表,确实是所谓的中断向量表,当中断源发出中断请求时,即可查找该表,找出其中断向量,就可转入相应的中断效劳子程序。
8086/8088中断系统中的中断向量表是位于0段的0~3FFFH的存贮区内,每一个中断向量占四个单元,其中前两个单元寄存中断处置子程序的入口地址的偏移量(IP),低位在前,高位在后;后两个单元寄存中断处置子程序入口地址的段地址(CS),也是低位在前,高位在后,整个中断向量的排列是按中断类型号进行的。
见P图5-14。
图示给出了中断类型码与中断向量所在位置之间的对应关系。
其中00H~04H为专用中断,05H~3FH为系统保留中断,用户一样是不能对它们概念的(那个地址面有一些为固定的用途,如INT 21H即为MS-DOS图5-14
的系统挪用),40~FF为用户概念的中断。
00H~04H――系统专用
10H~1FH――BIOS用
40H~FFH――用户用
08H~0FH――硬件中断
20H~3FH――DOS用
中断类型号*4即可计算某个中断类型的中断向量在整个中断向量表中的位置。
如类型号为20H,那么中断向量的寄存位置为20H*4=80H,(设中断效劳子程序的入口地址为4030:
2020,那么在0000:
0080H~0000:
0083H中就应顺序放入10H、20H、30H、40H。
当系统响应20H号中断时,会自动查找中断向量,找出对应的中断向量装入CS、IP,即转入该中断效劳子程序。
三、中断响应进程与时序
8086/8088对软件中断和硬件中断响应的进程是不同的,这是由于软件中断和硬件中断所产生的缘故不同,下面要紧讨论硬件中断的情形。
1.硬件中断的响应进程
硬件中断指的是由NMI引脚进入的非屏蔽中断或由INTR引脚进入的可屏蔽中断。
下面以可屏蔽中断为例。
CPU在INTR引脚上接到一个中断请求信号,若是现在IF=1,CPU就会在当前指令执行完以后开始响应外部的中断请求,这时,CPU在
引脚持续发两个负脉冲,外设在接到第二个负脉冲以后,在数据线上发送中断类型码,接到那个中断类型码后,CPU做如下动作:
①将中断类型码放入暂存器保留;
②将标志寄放器内容压入堆栈,以爱惜中断时的状态;
③将IF和TF标志清0,目的是避免在中断响应的同时又来别的中断,而将TF清0是为了避免CPU以单步方式执行中断处置子程序。
这时要专门提示,因为CPU在中断响应时自动关闭了IF标志,因此用户如要进行中断嵌套时,必需在自己的中断处置子程序顶用开中断指令来从头设置IF;
④爱惜断点,断点指的是在响应中断时,主程序当前指令下面的一条指令的地址。
因此爱惜断点的动作确实是将当前的IP和CS的内容入栈,爱惜断点是为了以后正确地返回主程序;
⑤依照取到的中断类型码,在中断向量表中找出相应的中断向量,将其装入IP和CS,即呆自动转向中断效劳子程序。
对NMI进入的中断请求,由于其类型码固定为2,因此CPU不用从外设读取类型码,也不需计算中断向量表的地址,只要将中断向量表中0000:
0008H~0000:
000BH单元内容别离装入IP和CS即可。
图5-15给出了8086/8088中断响应进程的流程图,对那个图咱们做几点说明:
①8086/8088除软件中断外,内部“非屏蔽中断”、“可屏蔽中断”均设立有优先级,其中内中(除单步外)――即0、一、3、4号中断的优先级高于非屏蔽中断,非屏蔽中断高于可屏蔽中断,单步中断优先级最低;
②只有在可屏蔽中断的情形下才判IF=1?
,才取中断类型码,其余的没有那个动作。
③关于单步中断,它是每执行一条指令中断一次,显示出那时各寄放器的内容,供用户参考,当进入单步中断响应时,CPU自动清除TF,在中断返回后,由于恢复了响应时的标志寄放器的值,因此TF=1,执行完一条指令后又进入单步中断,直到程序将TF改成0为止。
④关于中断的嵌套,NMI老是能够响应的,假设在中断处置子程序中设立了开中断指令,INTR的请求也能响应。
⑤弹出IP、CS、标志,返回断点的动作由IRET指令完成。
⑥有些情形下,即便条件知足,CPU也不能马上响应中断,必需执行完下一条指令(而不是当前指令)才行。
正好执行LOCK指令;
执行往SS寄放器赋值的传送指令,因为一样要求持续用两条指令对SS和SP寄放器赋值,以保证堆栈指针的正确性。
⑦当碰到等待指令或串操作指令时,许诺在指令执行的进程中进入中断。
这时需注意在中断处置子程序中爱惜现场,以保证中断返回后能继续正确地执行这些指令。
图5-15 中断响应流程图
2.硬件中断的时序
图5-16 8086/8088中断响应总线周期
①要求INTR信号是一个高电平信号,而且维持2个T,因为CPU是在一条指令的最后一个T采样INTR,进入中断响应后,它在第一个总线周期的T1仍需采样INTR。
②当8086工作在最小模式时,从
发出中断响应信号,而在最大模式进,那么是通过
、
、
的组合完成。
③第一个总线周期用来通知外设,CPU预备响应中断,第二个总线周期,接收外设发还的中断类型码,该类型码必需通过16位数据总线的低8位传送。
④在中断响应总线周期,
为低,数据/地址线浮空,
和地址/状态线均浮空,中间的三个空闲周期也可为两个或没有(8088)。
3.软件中断
即通过中断指令来使CPU执行中断处置子程序的方式,特点如下:
①中断类型码由指令提供,不需执行中断响应总线周期,也不受IF标志的阻碍。
②正在执行软件中断时,假设来NMI,那么当即响应,假设来可屏蔽
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中断 效劳 程序 流程图