版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 6.1 输入输出(输入输出(I/O)接口概述)接口概述一、一、 CPU与外设间的连接与外设间的连接 计算机系统由计算机系统由主机主机和和外部设备外部设备两大部分组成,外设不能直两大部分组成,外设不能直接和计算机系统的三总线相连接,必须在外设和接和计算机系统的三总线相连接,必须在外设和CPU三总线之三总线之间增设一个能控制外设与间增设一个能控制外设与CPU进行信息交换的中转电路(即接进行信息交换的中转电路(即接口电路),来协调口电路),来协调CPU和外设间的信息交换及工作秩序。和外设间的信息交换及工作秩序。 CPU对外设的输入输出操作类似于存储器的读写操作,即外设对外设的输入输出操作类似于存储
2、器的读写操作,即外设I/O对应对应着存储器读着存储器读/写,但外设与存储器的不同点写,但外设与存储器的不同点接口电路(即可编程接口芯片)种类很多,它的显著特点是可编程接口电路(即可编程接口芯片)种类很多,它的显著特点是可编程性,即可以通过编程来规定其功能及操作参数。性,即可以通过编程来规定其功能及操作参数。存储器存储器I/O设备设备不不同同点点种类少种类少种类多种类多功能单一功能单一功能多样功能多样传送一个字节传送一个字节传送规律丰富传送规律丰富与与CPU速度匹配速度匹配与与CPU速度不匹配速度不匹配易于控制易于控制控制难控制难结论结论可与可与CPU直接相连直接相连需要经过需要经过I/O接口电
3、路与接口电路与CPU连接连接二、接口电路的基本结构二、接口电路的基本结构 I/O接口的主要功能接口的主要功能l 锁存、缓冲信息,解决高速锁存、缓冲信息,解决高速CPU和低速外设之间信息传递所存在的速和低速外设之间信息传递所存在的速率不匹配的问题率不匹配的问题l 信息传递方式转换:串行转换为并行、并行转串行信息传递方式转换:串行转换为并行、并行转串行l 信息类型变换:信息类型变换: A/D、D/A转换,电平转换等转换,电平转换等l 总线与外设之间的隔离作用总线与外设之间的隔离作用l 联络与协调主机和外设间传送数据所必需的状态和控制信息。联络与协调主机和外设间传送数据所必需的状态和控制信息。 I/
4、O接口主要组成接口主要组成l 与外设相连接的部分(用以传递信息)与外设相连接的部分(用以传递信息)u端口端口:用来暂存与:用来暂存与CPU交换的信息,通常由接口电路中的内部寄交换的信息,通常由接口电路中的内部寄存器构成,存器构成,CPU可以象访问存储器一样直接对端口进行读写操作可以象访问存储器一样直接对端口进行读写操作暂存信息暂存信息u每个端口具有自己的地址,按访问方式可分为每个端口具有自己的地址,按访问方式可分为数据端口数据端口:存放数据信息:存放数据信息状态端口状态端口:存放状态信息,即反映外设当前工作状态的信息,:存放状态信息,即反映外设当前工作状态的信息,外设的状态一般采用编码表示,编
5、码值称为外设的外设的状态一般采用编码表示,编码值称为外设的状态字状态字控制端口控制端口:存放控制命令,控制命令采用编码表示,编码值称:存放控制命令,控制命令采用编码表示,编码值称为外设的为外设的控制字控制字或或命令字命令字数据总线控制总线地址总线数据缓冲器读/写/中断控制逻辑数据端口控制端口状态端口端口地址译码外部设备接口电路数据线控制线状态线l与计算机总线相连的部分与计算机总线相连的部分u数据总线缓冲器数据总线缓冲器:连接数据总线,用于传递数:连接数据总线,用于传递数据信息,为双向三态据信息,为双向三态u 逻辑控制电路逻辑控制电路:连接控制总线,控制端口的读:连接控制总线,控制端口的读/写、
6、中断等状态写、中断等状态u 地址译码电路地址译码电路:连接地址总线,接受地址信息,:连接地址总线,接受地址信息,寻找被访问的端口寻找被访问的端口 接口电路(接口电路(Interface)和端口()和端口(Port)的关系)的关系l接口是接在接口是接在CPU和外部设备之间进行信息交换的和外部设备之间进行信息交换的电路电路l端口是指在接口电路中完成信息暂存、传递,并可由端口是指在接口电路中完成信息暂存、传递,并可由CPU直接寻址访问的直接寻址访问的寄存器寄存器l接口电路由若干端口(寄存器)和相应的控制电路、接口电路由若干端口(寄存器)和相应的控制电路、译码电路构成译码电路构成l一个接口电路中可含有
7、多个端口,即一个接口电路可一个接口电路中可含有多个端口,即一个接口电路可具有多个属于不同端口的地址具有多个属于不同端口的地址端口地址是计算机端口地址是计算机系统一种重要资源系统一种重要资源 端口地址的编址方式端口地址的编址方式 CPU访问接口电路中的这些端口一一分配地址(编址),访问接口电路中的这些端口一一分配地址(编址),其分配地址(编址)的方式称为其分配地址(编址)的方式称为端口地址编址方式端口地址编址方式,常用的,常用的编址方式有两种编址方式有两种l 统一编址统一编址:和存储器单元一起进行编址:和存储器单元一起进行编址u优点:访问端口如同访问存储器一样,不需专用指令优点:访问端口如同访问
8、存储器一样,不需专用指令u缺点:占用了存储器的地址空间,使存储器的地址空缺点:占用了存储器的地址空间,使存储器的地址空间减少间减少l 单独编址单独编址:给端口单独分配地址空间:给端口单独分配地址空间u优点:不占用存储器的地址空间优点:不占用存储器的地址空间u缺点:访问端口必须使用专用的指令(如缺点:访问端口必须使用专用的指令(如 IN / OUT)l 8086/8088 CPU系统采用了系统采用了单独编址方式单独编址方式,并通过,并通过M /IO 控制信号来区分地址线上的地址是用于访问存储器或是访控制信号来区分地址线上的地址是用于访问存储器或是访问端口的。问端口的。 系系统统板板 00001F
9、02003F04005F06007F08009F0A00BF0C00DF0E00FFDMA控制器控制器1中断控制器中断控制器1定时计数器定时计数器并行接口电路并行接口电路DMA页面寄存器页面寄存器中断控制器中断控制器2DMA控制器控制器2协处理器协处理器 I/O 通通 道道1F01F820020727827F2F82FF37837F38038F3A03AF3B03BF3D03DF3F03F73F83FF硬盘适配器硬盘适配器游戏接口游戏接口并行打印机接口并行打印机接口LPT2串行通信接口串行通信接口COM2并行打印机接口并行打印机接口LPT1SDLC通信接口通信接口BSC通信接口通信接口单色显示
10、单色显示/打印机适配器打印机适配器彩色图形适配器彩色图形适配器CGA软盘适配器软盘适配器串行通信接口串行通信接口COM18086的的I/O端口空间分配端口空间分配 x86访问外设时只使用低访问外设时只使用低16位位A0A15,寻址,寻址64K个个8位位I/O端口,端口,PC机仅使用低机仅使用低10位位A0A9,寻址,寻址1024个个8位位I/O端口端口 端口的寻址(复习)端口的寻址(复习)l间接端口寻址间接端口寻址: 用用DX寄存器传递寄存器传递端口地址,可寻址端口地址,可寻址的端口号为的端口号为065535(FFFFH)IN AL, DXOUT DX, ALl直接端口寻址直接端口寻址:端:端
11、口地址小于等于口地址小于等于FFH,可以用立即,可以用立即数表示端口地址数表示端口地址IN AL, 42HOUT 43H, AL接口电路传送的信息种类接口电路传送的信息种类l数据信息数据信息:是最基本的一种信息,包括:是最基本的一种信息,包括:u数字量数字量:通常为:通常为8位二进制数或位二进制数或ASCII码码u模拟量模拟量:输入模拟量需要经过:输入模拟量需要经过A/D转换送入计算机;转换送入计算机;计算机输出的数字量需要经过计算机输出的数字量需要经过D/A转换为模拟量输出转换为模拟量输出u开关量开关量:是一些:是一些0或或1两个状态的量,用一位两个状态的量,用一位0或或1二进二进制数表示。
12、制数表示。l状态信息状态信息:反映外设当前所处工作状态的信息,以作为:反映外设当前所处工作状态的信息,以作为CPU与外设间可靠交换数据的条件与外设间可靠交换数据的条件l控制信息控制信息:用于:用于CPU控制外设的启动或停止。控制外设的启动或停止。在向端口传送信息时,要注意:在向端口传送信息时,要注意:l3种信息应视性质不同,应通过不同的端口分别传送种信息应视性质不同,应通过不同的端口分别传送l有可能同一地址的端口在采用读或写时表示不同的含义有可能同一地址的端口在采用读或写时表示不同的含义l端口地址由端口地址由CPU地址总线的低地址总线的低8位或低位或低16位地址信息位地址信息6.2 CPU与外
13、设之间数据传送的方式与外设之间数据传送的方式 CPU与接口之间进行信息传递,实际上是与外设之间进与接口之间进行信息传递,实际上是与外设之间进行的信息传递,因外设接收和发送信息的速度差别很大,应行的信息传递,因外设接收和发送信息的速度差别很大,应针对不同的外设采用不同的控制方式进行信息的传递,常用针对不同的外设采用不同的控制方式进行信息的传递,常用的方式有:的方式有: 程序传送程序传送程序传送是指程序传送是指CPU与外设间的数据交换在程序控制(即与外设间的数据交换在程序控制(即IN或或OUT指令控制指令控制)下进行。下进行。l无条件传送(又称同步传送)无条件传送(又称同步传送) 这种传送方式只对
14、固定的外设(如开关、继电器、这种传送方式只对固定的外设(如开关、继电器、LED显示器、机械式传感器等简单外设)在规定的时间用显示器、机械式传感器等简单外设)在规定的时间用IN或或OUT指令来进行信息的输入或输出。指令来进行信息的输入或输出。l其实质是用程序来定时同步传送数据其实质是用程序来定时同步传送数据l对少量数据传送来说最省时间对少量数据传送来说最省时间l适用于各类巡回检测和过程控制适用于各类巡回检测和过程控制 输入输出输入输出( (无条件程序传送无条件程序传送) )原理图原理图l读操作:当读操作:当CPU执行执行IN指令时,外设的数据必须已经准指令时,外设的数据必须已经准备好,否则就会读
15、错备好,否则就会读错l写操作:在写操作:在CPU执行执行OUT指令时,必须确信所选外设的指令时,必须确信所选外设的锁存器是空的锁存器是空的例:一个采用同步传送的数据采集系统例:一个采用同步传送的数据采集系统采集过程要求:采集过程要求: l先断开所有的继电器线圈及触头先断开所有的继电器线圈及触头,不采集数据;不采集数据;l延迟一段时间后,使延迟一段时间后,使K0闭合,采集第闭合,采集第1个通道的模拟量,个通道的模拟量,并保持一段时间,以使数字电压表能将模拟电压转换为并保持一段时间,以使数字电压表能将模拟电压转换为16位位BCD码码l分别将高分别将高8位与低位与低8位位BCD码存入内存码存入内存,
16、完成第完成第1个模拟量的个模拟量的输入与转存输入与转存l利用移位与循环实现利用移位与循环实现8个模拟量的依次采集、输入与转存个模拟量的依次采集、输入与转存数据采集程序如下:数据采集程序如下: START: MOV DX, 0100H ; 01HDH,置吸合第置吸合第1个继电器代码个继电器代码 ; 00HDL,置断开所有继电器代码置断开所有继电器代码 LEA BX, DSTOR ; 置输入数据缓冲器的地址指针置输入数据缓冲器的地址指针 XOR AL, AL ; 清清AL及进位位及进位位CF AGAIN: MOV AL,DL OUT 20H,AL ; 断开所有继电器线圈断开所有继电器线圈 CALL
17、 NEAR DELAY1 ; 模拟继电器触点的释放时间模拟继电器触点的释放时间 MOV AL, DH OUT 20H, AL ;先使先使P0吸合吸合 CALL NEAR DELAY2 ;模拟触点闭合及数字电压表转换时间模拟触点闭合及数字电压表转换时间 IN AX, 10H ;输入模拟转换数据输入模拟转换数据 MOV BX,AX ;存入内存存入内存 INC BX INC BX RCL DH,1 ; DH左移左移(大循环大循环)1位位,为下一个触点吸合作准备为下一个触点吸合作准备 JNC AGAIN ; 8位都输入完了吗?没有,则循环位都输入完了吗?没有,则循环 DONE: ;输入已完,则执行别的
18、程序段输入已完,则执行别的程序段l程序查询传送(条件传送程序查询传送(条件传送异步传送)异步传送) 也是一种程序传送,但属于有条件异步传送。传送条件也是一种程序传送,但属于有条件异步传送。传送条件l 在执行输入(在执行输入(IN指令)或输出(指令)或输出(OUT指令)前,要先查询接口指令)前,要先查询接口中状态寄存器的状态。中状态寄存器的状态。l 输入时,由该状态信息指示要输入的数据是否已输入时,由该状态信息指示要输入的数据是否已“准备就绪准备就绪”l 输出时,又由它指示输出设备是否输出时,又由它指示输出设备是否“空闲空闲”,由此条件来决定执,由此条件来决定执行输入或输出行输入或输出读入的数据
19、是位读入的数据是位, ,而状态信息往往是位,所以不同的而状态信息往往是位,所以不同的外设其状态信息可以使用同一个端口,但不要使用相同的位。外设其状态信息可以使用同一个端口,但不要使用相同的位。 查询输入部分的程序:查询输入部分的程序: POLL:IN AL, STATUSPORT ;读状态端口的信息读状态端口的信息 TEST AL,80 ;设设“准备就绪准备就绪”(READY)信息在信息在D7位位 JE POLL ;未未“准备就绪准备就绪”,则循环再查,则循环再查 IN AL,DATA_PORT ;已已“准备就绪准备就绪”(READY=1), ; 则读入数据则读入数据l程序查询输出程序查询输出
20、 在输出时在输出时CPU也必须了解外设的状态,看外设是否有也必须了解外设的状态,看外设是否有“空闲空闲”(即(即外设数锁存器已空,或未正处于输出状态)外设数锁存器已空,或未正处于输出状态)l若有若有“空闲空闲”,则,则CPU执行输出指令;否则就等待再查执行输出指令;否则就等待再查l接口电路中也必须要有状态信息的端口接口电路中也必须要有状态信息的端口查询输出部分的程序:查询输出部分的程序:POLL: IN AL, STATUSPORT ;查状态端口中的状态信息查状态端口中的状态信息D7 TEST AL, 80H JNE POLL; D71即忙线即忙线1,循环再查,循环再查 MOV AL,STOR
21、E ;否则外设空闲,由内存读取数据否则外设空闲,由内存读取数据 OUT DATAPORT, AL ; 输出到输出到DATA地址端口单元地址端口单元例:一个采用查询方式的模拟量输入的数据采集系统,用查询方式与例:一个采用查询方式的模拟量输入的数据采集系统,用查询方式与CPU传送信息传送信息解:采集过程要求:解:采集过程要求: (1)初始化并先停止)初始化并先停止A/D转换转换(2)启动)启动A/D转换,查输入状态信息转换,查输入状态信息READY(3)当输入数据已转换完()当输入数据已转换完(READY1),则经由端口输入至),则经由端口输入至CPU的的累加器累加器AL中,并转送内存中,并转送内
22、存(4)设置下一个内存单元与下一个输入通道,循环次)设置下一个内存单元与下一个输入通道,循环次数据采集过程的程序为:数据采集过程的程序为: STARE: MOV DL,0F8H ;设置启动设置启动A/D转换的信号转换的信号,且低位选通多路开关通道且低位选通多路开关通道 MOV AX,SEG DSTOR ;设置输入数据的内存单元地址指针设置输入数据的内存单元地址指针 MOV ES,AX LEA DI,DSTOR AGAIN: MOV AL,DL AND AL,0EFH ;使使D4 OUT 04,AL ;停止停止A/D转换转换 CALL DELAY ;等待停止等待停止A/D转换操作的完成转换操作的
23、完成 MOV AL,DL OUT 04,AL ;选输入通道并启动选输入通道并启动A/D转换转换 POLL: IN AL,02 ;输入状态信息输入状态信息 SHR AL,1 ;查查AL的的D0 JNC POLL ;判判READY=1?若若D0=0,未准备好未准备好,则循环再查则循环再查 IN AL,03 ;若已准备就绪若已准备就绪,则经端口将采样数据输入则经端口将采样数据输入AL STOSB ;输入数据转送内存单元输入数据转送内存单元 IN CDL ;输入模拟量通道增输入模拟量通道增1 JNE AGAIN ;8个模拟量未输入完则循环个模拟量未输入完则循环 ;输入已完输入已完,执行别的程序执行别的
24、程序 中断传送中断传送 中断是外设或其他中断源中止中断是外设或其他中断源中止CPU当前正在执行的程序,当前正在执行的程序,而转向为该外设服务(如完成它与而转向为该外设服务(如完成它与CPU之间传送一个数据)的之间传送一个数据)的程序,一旦服务结束,又返回原程序继续工作。程序,一旦服务结束,又返回原程序继续工作。l特点:特点:uCPU不必查询等待,效率高不必查询等待,效率高uCPU与外设可并行工作与外设可并行工作u外设具有申请服务的主动权外设具有申请服务的主动权 直接存储器存取(直接存储器存取(DMA)传送)传送 DMA方式是一种由专门的硬件电路方式是一种由专门的硬件电路( DMA控制器控制器D
25、MAC)执行执行I/O的数据传送方式,它可以让外设接口直接与内存进行的数据传送方式,它可以让外设接口直接与内存进行高速的数据传送,而不必经过高速的数据传送,而不必经过CPU。l特点特点u由由DMAC发出地址及读发出地址及读/写信号来实现高速数据传输。写信号来实现高速数据传输。u在此过程中在此过程中CPU放弃总线控制权,数据传送不过放弃总线控制权,数据传送不过CPUu可实现可实现I/O外设之间、存储器之间以及外设之间、存储器之间以及I/O外设与存储器外设与存储器之间的数传之间的数传例:例:8086用用DMA方式输出单个数据方式输出单个数据6.3 中断技术中断技术一、中断概述一、中断概述(一)(一
26、) 中断与中断源中断与中断源 中断中断 在程序运行中,出现了某种紧急事件,在程序运行中,出现了某种紧急事件,CPU必须中必须中止现行程序,转去处理此紧急事件止现行程序,转去处理此紧急事件(执行中断服务程序执行中断服务程序),并在处理完毕后再返回运行程序的过程。并在处理完毕后再返回运行程序的过程。 中断的应用中断的应用 中断除了能解决快速中断除了能解决快速CPU与中、慢速外设速度不匹与中、慢速外设速度不匹配的矛盾以提高主机的工作效率之外,还可以用于实现配的矛盾以提高主机的工作效率之外,还可以用于实现分时操作、实时处理、故障处理、多机连接以及人机界分时操作、实时处理、故障处理、多机连接以及人机界面
27、等。面等。 中断源中断源 引起中断的事件或原因,或发出中断申请的来源。引起中断的事件或原因,或发出中断申请的来源。 通常中断源有通常中断源有l随机中断源(强迫中断)随机中断源(强迫中断)u外部设备:外部设备:包括中、慢速外设(如键盘、行式打印机、包括中、慢速外设(如键盘、行式打印机、A/D转换器等)和高速的外设(如磁盘、磁带等)转换器等)和高速的外设(如磁盘、磁带等)u实时时钟:实时时钟:可编程外部时钟电路可编程外部时钟电路u故障源:故障源:意外事件(如:运算出错、存储器读出出错、意外事件(如:运算出错、存储器读出出错、外部设备故障、电源掉电以及越限报警等)外部设备故障、电源掉电以及越限报警等
28、)l程序调试中断源(自愿中断)程序调试中断源(自愿中断)u断点设置断点设置u单步调试单步调试都由中断系统实现都由中断系统实现 一个完整的中断过程包括一个完整的中断过程包括l中断请求:中断请求:是指中断源向是指中断源向CPU发出的请求中断的要求发出的请求中断的要求l中断判优:中断判优:中断源发出中断请求时,需要通过适当的办法中断源发出中断请求时,需要通过适当的办法决定究竟先处理哪个中断请求决定究竟先处理哪个中断请求l中断响应:中断响应:指指CPU中止现行程序转至中断服务程序的过程中止现行程序转至中断服务程序的过程l中断处理:中断处理:是指是指CPU执行中断服务程序执行中断服务程序l中断返回:中断
29、返回:执行完中断服务程序后,返回到原先被中断的执行完中断服务程序后,返回到原先被中断的程序程序u为了能正确返回到原来程序被中断的地方(也称为了能正确返回到原来程序被中断的地方(也称断断点点),在中断服务程序的最后应专门放置一条中断返),在中断服务程序的最后应专门放置一条中断返回指令回指令u为了使主程序在返回后仍能从断点处继续执行,还需为了使主程序在返回后仍能从断点处继续执行,还需要在中断服务程序的开头保护现场,在中断服务程序要在中断服务程序的开头保护现场,在中断服务程序的末尾恢复现场的末尾恢复现场(二)中断系统及其功能(二)中断系统及其功能 中断系统是为实现中断而设置的各种硬件与软件,包括中断
30、系统是为实现中断而设置的各种硬件与软件,包括l中断控制逻辑中断控制逻辑l相应管理中断的指令相应管理中断的指令 中断系统具有的功能中断系统具有的功能l能响应中断、处理中断与返回能响应中断、处理中断与返回中断源中断源中断中断请求请求 当当 前前 程程 序序中断中断服务服务程序程序程序断点程序断点中断返回中断返回中断响应中断响应l能实现优先级(能实现优先级(Priority)排队)排队 系统中多个中断请求可能同时出现,系统中多个中断请求可能同时出现,CPU只能按一定只能按一定的次序的次序(优先级策略优先级策略)予以响应和处理,这个响应的次序称予以响应和处理,这个响应的次序称为中断优先级。为中断优先级
31、。l高级中断源能中断低级的中断高级中断源能中断低级的中断l中断优先级的解决方法中断优先级的解决方法u软件查询法(需要少量硬件)软件查询法(需要少量硬件)u菊花链(菊花链(daisy chain)优先级排队电路)优先级排队电路u可编程中断控制器(如可编程中断控制器(如8259)通常,正在执行较低级的通常,正在执行较低级的中断服务程序时,可以响应较中断服务程序时,可以响应较高级的中断请求,而将正在处高级的中断请求,而将正在处理的中断暂时挂起,称为理的中断暂时挂起,称为中断中断嵌套。嵌套。 软件查询法软件查询法l把各个外设的中断请求信号把各个外设的中断请求信号“相或相或”,产生一个总的,产生一个总的
32、INT信号信号l当当CPU响应中断后,进入中断处理程序,在中断处理响应中断后,进入中断处理程序,在中断处理程序的开始部分安排一段带有优先级的查询程序。程序的开始部分安排一段带有优先级的查询程序。l优点:省硬件优点:省硬件l缺点:中断响应慢缺点:中断响应慢01267INT磁磁盘盘磁磁带带CRT键键盘盘打打印印“或或”端口号端口号XXH二、二、 单个中断源的中断单个中断源的中断(一)(一) 中断源向中断源向CPU发中断请求信号的条件发中断请求信号的条件 中断源向中断源向CPU发中断请求信号应满足下列两个条件发中断请求信号应满足下列两个条件 设置中断请求触发器设置中断请求触发器 设置中断屏蔽触发器设
33、置中断屏蔽触发器(二)(二) CPU响应中断的条件响应中断的条件 当中断源向当中断源向CPU发出发出INTR信号后,信号后,CPU响应它还应满响应它还应满足下列条件足下列条件 CPU开放中断开放中断 CPU在现行指令结束后响应中断在现行指令结束后响应中断(三)(三) CPU响应中断及处理过程响应中断及处理过程 当满足上述条件后,当满足上述条件后,CPU就转入中断响应周期,完成下就转入中断响应周期,完成下列操作:列操作: 关中断关中断 保留断点保留断点 保护现场保护现场 给出中断入口给出中断入口(地址地址),转入相应的中断服务程序转入相应的中断服务程序中断服务程序结束后还要中断服务程序结束后还要
34、 恢复现场恢复现场 开中断与返回开中断与返回三、向量中断三、向量中断 所谓所谓向量中断向量中断(Vectored Interrupt),是指通过中断),是指通过中断向量来找中断入口地址进而转向中断服务程序的一种方法;向量来找中断入口地址进而转向中断服务程序的一种方法;而而中断向量中断向量则是用来提供中断入口地址的一个地址指针。则是用来提供中断入口地址的一个地址指针。 8086/8088CPU的中断系统就是采用这种向量中断。的中断系统就是采用这种向量中断。6.4 8086/8088的中断系统和中断处理的中断系统和中断处理 一、一、8086/8088的中断系统的中断系统 8086/8088采用了中
35、断向量结构,使每个不同的中断都可采用了中断向量结构,使每个不同的中断都可以通过给定一个特定的以通过给定一个特定的中断类型号(或中断类型码)中断类型号(或中断类型码)供供CPU识别,来处理多达识别,来处理多达256种类型的中断。种类型的中断。(一)外部中断(一)外部中断 8086/8088 CPU有两条外部中断源请求引脚有两条外部中断源请求引脚 可屏蔽中断可屏蔽中断INTRl由用户定义的外部硬件中断由用户定义的外部硬件中断l高电平有效高电平有效lINTR有效高电平必须保持到当前指令的结束有效高电平必须保持到当前指令的结束lIF=1,CPU开中断,响应开中断,响应INTRl8086/8088CPU
36、在系统复位以后或任一种中断被响应以后,在系统复位以后或任一种中断被响应以后,IF=0(中断不允许)(中断不允许) 非屏蔽中断非屏蔽中断NMI(类型为(类型为2)l正跳变有效正跳变有效l请求脉冲的有效宽度请求脉冲的有效宽度两个时钟周期,不受标志位两个时钟周期,不受标志位IF限制限制lNMI来源来源u系统板上系统板上RAM的奇偶校验错的奇偶校验错u扩展槽中的扩展槽中的I/O通道错通道错u浮点运算协处理器浮点运算协处理器8087错错lNMI比比INTR引脚上产生的任何中断请求的级别都高引脚上产生的任何中断请求的级别都高 (二)内部中断(二)内部中断 除法出错中断(类型除法出错中断(类型0) 当执行当
37、执行DIVs(除法)或(除法)或IDVs(整数除法)指令时,若(整数除法)指令时,若发现除数为发现除数为0或商数超过了寄存器所能表达的范围产生,或商数超过了寄存器所能表达的范围产生,CPU转向除法出错的中断服务程序。转向除法出错的中断服务程序。l是优先级最高的一种内部中断是优先级最高的一种内部中断 溢出中断(类型溢出中断(类型4)若上一条指令执行的结果使溢出标志位置若上一条指令执行的结果使溢出标志位置1(OF=1),),在执行溢出中断(在执行溢出中断(INTO)指令时引起,)指令时引起,CPU转入对溢出错转入对溢出错误进行处理的中断服务程序。误进行处理的中断服务程序。l若若OF=0时,则时,则
38、INTO指令不起作用,程序执行下一条指指令不起作用,程序执行下一条指令令lINTO指令常常紧跟在算术运算指令之后,明确地规定溢指令常常紧跟在算术运算指令之后,明确地规定溢出中断。出中断。l在溢出中断服务程序中,无需保存状态标志寄存器的内在溢出中断服务程序中,无需保存状态标志寄存器的内容(容(PSW)。)。 单步中断(类型单步中断(类型1) 当当TF被置位(被置位(TF1)时,)时,CPU每执行完一条指令后就每执行完一条指令后就自动地产生一个类型自动地产生一个类型1的内部中断,程序控制将转入单步中的内部中断,程序控制将转入单步中断服务程序。断服务程序。 断点中断(类型断点中断(类型3) INT
39、3 指令执行后就会产生一个中断类型为指令执行后就会产生一个中断类型为3的内部中的内部中断断,CPU将转向执行一个断点中断服务程序,以便进行一些将转向执行一个断点中断服务程序,以便进行一些特殊的处理。特殊的处理。 用户定义的软件中断(类型用户定义的软件中断(类型n) 可由用户定义的双字节的中断指令可由用户定义的双字节的中断指令INT n,其第,其第1个字个字节为节为INT的操作码的操作码, 第第2个字节个字节n是它的中断类型号。中断类是它的中断类型号。中断类型号型号n由程序员编程时给定,用它指出中断服务程序的入口由程序员编程时给定,用它指出中断服务程序的入口地址。地址。256级中断的中断入口地址
40、表级中断的中断入口地址表l256个中断向量包括个中断向量包括u5个专用中断(个专用中断(类型类型0类型类型4),它们有固定的定义),它们有固定的定义和处理功能;和处理功能;u27个保留的中断(个保留的中断(类型类型5类型类型31)。占)。占0000:0014H0000:007FH,共,共108个字节单元。这个字节单元。这个区域供系统使用,不允许用户自行定义。个区域供系统使用,不允许用户自行定义。u224个用户可定义的中断个用户可定义的中断(类型类型32类型类型255)。占。占0000:0080H0000:03FFH单元;使用时,要由用户单元;使用时,要由用户自行填写相应的中断入口地址。(其中有
41、些中断类自行填写相应的中断入口地址。(其中有些中断类型已经有了固定用途,例如,型已经有了固定用途,例如,类型类型21H的中断已用的中断已用作作MS-Dos的的系统功能调用系统功能调用)。 (三)内部中断的特点(三)内部中断的特点 内部中断由一条内部中断由一条INT n指令直接产生,其中断类型号指令直接产生,其中断类型号n或者包或者包括在指令中,或者已由系统预先定义括在指令中,或者已由系统预先定义 除单步中断以外,所有内部中断都不能被屏蔽除单步中断以外,所有内部中断都不能被屏蔽 所有内部中断都没有中断响应所有内部中断都没有中断响应INTA机器总线周期,这是因为机器总线周期,这是因为内部中断不必通
42、过查询外部来获得中断类型号内部中断不必通过查询外部来获得中断类型号 除单步中断外,所有内部中断都比外部中断的优先权高。如除单步中断外,所有内部中断都比外部中断的优先权高。如果在执行一个能引起内部中断指令的同时,在果在执行一个能引起内部中断指令的同时,在NMI或或INTR引引脚端也产生了外部中断请求,则脚端也产生了外部中断请求,则CPU将首先处理内部中断。将首先处理内部中断。 单步中断是逐条地跟踪调试,而断点中断(单步中断是逐条地跟踪调试,而断点中断(INT 3)是)是逐段地调试,它们均可用中断服务程序在屏幕上显示有逐段地调试,它们均可用中断服务程序在屏幕上显示有关的各种信息。关的各种信息。 为
43、了避开由外设硬件产生为了避开由外设硬件产生INTR中断请求信号和提供中中断请求信号和提供中断类型号的麻烦,可以用软件中断指令断类型号的麻烦,可以用软件中断指令INT nn来模拟来模拟外设提供的硬件中断。外设提供的硬件中断。二、二、 8086/8088的中断处理过程的中断处理过程 (一)(一)8086/8088 CPU中断处理的基本过程中断处理的基本过程当多个中断请求同时产生当多个中断请求同时产生时,时,8086 CPU将根据各中断源将根据各中断源优先权的高低来处理,首先响优先权的高低来处理,首先响优先权较高的中断请求,等具优先权较高的中断请求,等具有较高优先权的中断请求处理有较高优先权的中断请
44、求处理完以后,再去依次响应和处理完以后,再去依次响应和处理其他中断申请。其他中断申请。(二)(二) 同时发生多个中断的处理过程同时发生多个中断的处理过程三、三、 中断向量表中断向量表 中断向量表也称中断入口地址表。该表说明了中断类型中断向量表也称中断入口地址表。该表说明了中断类型号和中断服务程序的入口地址之间的联系。号和中断服务程序的入口地址之间的联系。 中断向量表放在存储单元地址的最低部位中断向量表放在存储单元地址的最低部位00000H到到003FFH之间的之间的1K字节的存储空间字节的存储空间 中断向量表分成中断向量表分成256组,每组由两个字(即组,每组由两个字(即4个字节)组成一个字节
45、)组成一个双字长的指针,指示一种中断类型个双字长的指针,指示一种中断类型00000H00004H003FCH0型中断向量型中断向量1型中断向量型中断向量255型中断向量型中断向量n型中断向量型中断向量4*n4n4n+2n型型ISP首指令的有效地址首指令的有效地址n型型ISP代码段的段基址代码段的段基址 双字长指针的高地址中存放的字是中断服务程序入口地址所双字长指针的高地址中存放的字是中断服务程序入口地址所在的代码段的在的代码段的16位段地址(位段地址(CS),低地址字是中断服务程序),低地址字是中断服务程序入口地址相对于段起始地址的偏移值(入口地址相对于段起始地址的偏移值(IP)。)。 CPU
46、通过通过CS和和IP的值得到一个的值得到一个20位的地址,即中断服务程序位的地址,即中断服务程序的实际入口地址,其计算方法与求一个存储器单元实际地址的实际入口地址,其计算方法与求一个存储器单元实际地址的方法一致的方法一致 每个中断向量具有一个相应的中断类型号,由中断类型号确每个中断向量具有一个相应的中断类型号,由中断类型号确定在中断向量表中的中断向量。中断类型号乘定在中断向量表中的中断向量。中断类型号乘4,将给出中断,将给出中断向量表中的中断向量入口第向量表中的中断向量入口第1字节的物理地址。字节的物理地址。00000H00001H0000CH(0000:000CH)1EA00H(1E00:0
47、A00H)FFFFFH低地址低地址内存内存高地址高地址 1E00 0 H+ 0A0 0 H 1EA0 0 H中断服务程序中断服务程序.1E(CSH)00(CSL)0A(IPH)00(IPL). 例:若中断类型号为例:若中断类型号为3,则由中断类型号取得中断服务入,则由中断类型号取得中断服务入口地址的过程如下图所示:口地址的过程如下图所示:中断类型号中断类型号34000CH四、四、 可屏蔽中断的过程可屏蔽中断的过程(一)(一)INTR中断的全过程中断的全过程 首先,中断请求信号首先,中断请求信号INTR由外部设备产生由外部设备产生并送至并送至8086的的INTR引引脚上。脚上。 CPU是否响应取
48、决于是否响应取决于CPU内部的内部的IF标志。标志。(二)(二) 中断类型号的获得中断类型号的获得 除法错误,单步中断,非屏蔽中断,断点中断和溢出中断分除法错误,单步中断,非屏蔽中断,断点中断和溢出中断分别由别由CPU芯片内的硬件自提供类型号芯片内的硬件自提供类型号04 软件中断则是从指令流中软件中断则是从指令流中,即在第即在第2个字节中读个字节中读得中断类型号得中断类型号 外部中断外部中断INTR可以用不同的方法获得中断类型号,如可以用不同的方法获得中断类型号,如IBM PC系列微机中,可以由系列微机中,可以由Intel 8259A芯片或集成了芯片或集成了 8259A的的超大规模集成外围芯片
49、来提供中断类型号超大规模集成外围芯片来提供中断类型号 IBM PC系列微机的中断结构系列微机的中断结构 PC/AT中,中,8259的使用情况为的使用情况为l2片片8259级联,提供级联,提供15级向量中断。从片的级向量中断。从片的INT接主片的接主片的IR2l端口地址:主片端口地址:主片20H、21H,从片,从片A0H、A1H。l主片和从片均采用边沿触发。主片和从片均采用边沿触发。l采用全嵌套优先级排列方式采用全嵌套优先级排列方式l采用非缓冲方式,主片采用非缓冲方式,主片 接接+5V,从片,从片 接地。接地。l主片的类型码为主片的类型码为08H0FH,从片的类型码为,从片的类型码为70H77H
50、五、五、 中断响应时序中断响应时序 以以8086 CPU的最小方式以及用户定义的硬件中断为例的最小方式以及用户定义的硬件中断为例 CPU响应可屏蔽中断的全过程响应可屏蔽中断的全过程l执行两个中断响应总线周期时,中断接口电路在第执行两个中断响应总线周期时,中断接口电路在第2个中个中断响应总线周期内送出一个单字节数据作为中断类型号。断响应总线周期内送出一个单字节数据作为中断类型号。这个数据字节左移两位(即乘以这个数据字节左移两位(即乘以4)后,得到中断向量在)后,得到中断向量在中断向量表中的起始地址中断向量表中的起始地址l执行一个写总线周期时,执行一个写总线周期时,CPU在这个周期内把程序状态字在
51、这个周期内把程序状态字PSW的内容压入堆栈的内容压入堆栈l把程序状态字中的中断允许把程序状态字中的中断允许(IF)和单步陷阱)和单步陷阱(TF)标志位标志位复位成复位成0,禁止可屏蔽的和单步的中断,禁止可屏蔽的和单步的中断l执行一个写总线周期时,断点执行一个写总线周期时,断点CS寄存器内容被压入堆栈寄存器内容被压入堆栈l执行一个写总线周期时,断点执行一个写总线周期时,断点IP寄存器内容被压入堆栈寄存器内容被压入堆栈l执行一个读总线周期时,执行一个读总线周期时,CPU将从将从4n+的字存储单元的字存储单元中将中断服务程序的代码段值读入中将中断服务程序的代码段值读入CS内内l执行一个读总线周期时,
52、执行一个读总线周期时,CPU将从将从4n的字存储单元中将的字存储单元中将中断服务程序的偏移地址读到指令指示器中断服务程序的偏移地址读到指令指示器IP中中lCPU根据根据CS:IP中的值去执行中断服务程序。中的值去执行中断服务程序。l 8086执行中断响应时,在执行中断响应时,在2个中断响应周期之间插入了个中断响应周期之间插入了2个或个或插入插入3个空闲状态。个空闲状态。l 但在但在8088 CPU的的2个中断响应周期之间并没有插入空闲状态个中断响应周期之间并没有插入空闲状态l 当一个非屏蔽中断,或一个软件中断或一个单步中断被响应当一个非屏蔽中断,或一个软件中断或一个单步中断被响应时,以上各步均
53、要执行,除了第时,以上各步均要执行,除了第1步不存在步不存在l 对于由软件产生的中断,除了没有执行中断响应总线周期外,对于由软件产生的中断,除了没有执行中断响应总线周期外,其余的则执行同样序列的总线周期。其余的则执行同样序列的总线周期。六、六、 中断服务子程序设计中断服务子程序设计 在中断向量表中在中断向量表中40H7FH中断向量是留给用户增加中中断向量是留给用户增加中断服务程序时使用的。为此断服务程序时使用的。为此,可以将某些通用性强的子程序功可以将某些通用性强的子程序功能能,用中断子程序来实现。一旦设置好这样的中断子程序用中断子程序来实现。一旦设置好这样的中断子程序,在其在其他应用程序中就
54、可以调用这个中断程序。他应用程序中就可以调用这个中断程序。 中断服务程序的编程原则中断服务程序的编程原则l中断是异步发生的,进入响应时并不考虑当前运行状态,中断是异步发生的,进入响应时并不考虑当前运行状态,因此中断服务程序必须保护现场因此中断服务程序必须保护现场l在进入具体中断处理之前要先初始化中断向量,使其指向在进入具体中断处理之前要先初始化中断向量,使其指向相应的中断服务程序,但在此之前要先关中断,以防接管相应的中断服务程序,但在此之前要先关中断,以防接管中断过程中发生中断中断过程中发生中断l在中断服务程序入口处要立即开中断,以允许较高优先级在中断服务程序入口处要立即开中断,以允许较高优先
55、级的中断产生的中断产生l中断服务程序的服务时间要尽量压缩,以免干扰同级或低中断服务程序的服务时间要尽量压缩,以免干扰同级或低级中断设备的工作级中断设备的工作l由于由于PC机中机中8259采用正常结束中断,因此在中断服务程采用正常结束中断,因此在中断服务程序执行序执行IRET返回前应向返回前应向8259发结束中断命令发结束中断命令EOI MOV AL, 20H ; 使当前使当前ISR中的对应位复位中的对应位复位 OUT 20H, AL IRETl当编制替代系统原有中断服务程序时,应保存好原中断当编制替代系统原有中断服务程序时,应保存好原中断向量的内容。在应用程序终止前恢复原有的中断向量向量的内容
56、。在应用程序终止前恢复原有的中断向量l中断服务程序不要使用中断服务程序不要使用DOS系统功能调用(系统功能调用(INT 21H),),因为因为DOS不允许重入不允许重入l若中断服务程序只为某个应用程序服务,则中断服务程若中断服务程序只为某个应用程序服务,则中断服务程序可以和主程序组装成一个程序一起装入内存,随主程序可以和主程序组装成一个程序一起装入内存,随主程序结束而一起退出内存序结束而一起退出内存l若中断服务程序为多个应用程序服务,则中断服务程序若中断服务程序为多个应用程序服务,则中断服务程序可以与一个初始化程序组装成一个程序一起装入内存,可以与一个初始化程序组装成一个程序一起装入内存,通过
57、初始化程序的执行而将中断服务程序驻留内存通过初始化程序的执行而将中断服务程序驻留内存 中断向量表的操作中断向量表的操作 读写中断向量表不能使用读写中断向量表不能使用MOV指令,而应调用相应的指令,而应调用相应的DOS功能功能l取中断向量取中断向量u预置预置AH=35H, AL=中断类型号中断类型号u执行执行INT 21H把类型号为把类型号为AL的中断向量取出到的中断向量取出到ES:BX中中l设置中断向量设置中断向量u预置预置AH=25H, AL=中断类型号中断类型号,DS:DX=中断向量中断向量u执行执行INT 21H把把DS:DX指向的中断向量放置到中断向量表中类指向的中断向量放置到中断向量
58、表中类型号为型号为AL的中断向量处的中断向量处 中断服务程序的编程中断服务程序的编程中断入口中断入口保护现场保护现场为中断源服务部分为中断源服务部分发中断结束命令发中断结束命令恢复现场恢复现场中断返回中断返回 基本步骤基本步骤l选择一个中断向量。如果采用硬件中断选择一个中断向量。如果采用硬件中断,则要使用硬件决则要使用硬件决定的中断向量。如果采用软件中断,执行定的中断向量。如果采用软件中断,执行INT n指令的指令的方式来执行中断服务程序,则可以在系统预留给用户的方式来执行中断服务程序,则可以在系统预留给用户的中断向量号中选某一个中断向量(如中断向量号中选某一个中断向量(如50H)l将中断子程
59、序的入口地址置入中断向量表的相应将中断子程序的入口地址置入中断向量表的相应 表项中。表项中。设选择的向量号为,其置入方法有两种设选择的向量号为,其置入方法有两种u用用MOV指令将中断服务子程序入口相对地址存放在指令将中断服务子程序入口相对地址存放在物理地址为物理地址为4n的字单元中,将中断服务子程序入口的字单元中,将中断服务子程序入口段地址存放在物理地址为段地址存放在物理地址为4+2的字单元中。的字单元中。u采用采用DOS置新中断向量的中断功能(置新中断向量的中断功能(25H功能)功能)l使中断服务子程序驻留内存(使中断服务子程序驻留内存(TSR)。使程序)。使程序驻留内存的方法是采用驻留内存
60、的方法是采用DOS的中断调用,即:的中断调用,即: 向量号向量号 21H 功能号功能号 31H 入口参数:入口参数: DX驻留程序字节数;驻留程序字节数;该功能使当前程序的该功能使当前程序的DX个字节驻留内存并返回个字节驻留内存并返回DOS。l实现实现TSR必要性在于必要性在于u程序驻留在内存后程序驻留在内存后,它占用的存储区就不会被其他软它占用的存储区就不会被其他软件覆盖。使程序驻留内存,这也是件覆盖。使程序驻留内存,这也是DOS下实现多任下实现多任务的解决方法务的解决方法u一旦中断服务子程序驻留内存后,一般程序员使用一旦中断服务子程序驻留内存后,一般程序员使用这一新增的中断调用就如同调用这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度个人货款定金担保合同标准化版本4篇
- 二零二五年度酒店餐饮承包合同示范文本4篇
- 2025年度建筑工程项目管理承包合同下载模板4篇
- 2025年度物流仓储设施建设贷款合同范本4篇
- 2024虚拟现实头盔及配套设备采购合同
- 2025年度内部施工合同终止协议2篇
- 堰塘水资源利用与保护2025年度合同3篇
- 2025年度美食城档口租赁合同范本4篇
- 二零二五年度模特形象代言效果评估服务合同4篇
- 2025年度厂房转租与智能化改造升级合同4篇
- 神经外科进修汇报课件
- 2024老年人静脉血栓栓塞症防治中国专家共识(完整版)
- 腾讯营销师认证考试题库(附答案)
- 邻近铁路营业线施工安全监测技术规程 (TB 10314-2021)
- 四年级上册脱式计算100题及答案
- 资本市场与财务管理
- 河南近10年中考真题数学含答案(2023-2014)
- 八年级上学期期末家长会课件
- 2024年大学试题(宗教学)-佛教文化历年考试高频考点试题附带答案
- HGE系列电梯安装调试手册(ELS05系统SW00004269,A.4 )
- 尤文肉瘤的护理查房
评论
0/150
提交评论