第8章 输入输出与中断.ppt
《第8章 输入输出与中断.ppt》由会员分享,可在线阅读,更多相关《第8章 输入输出与中断.ppt(86页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8 8章章 输入输入/输出与中断输出与中断 l8 8.1 1 输入输出设备的数据传送方式输入输出设备的数据传送方式l8 8.2 80X862 80X86的中断系统的中断系统 l8 8.3 BIOS3 BIOS与与DOSDOS中断系统中断系统8 8.1 1 输入输出设备的数据传送方式输入输出设备的数据传送方式 8.1.1 I/O8.1.1 I/O端口端口 8.1.2 I/O8.1.2 I/O指令指令 8.1.3 I/O8.1.3 I/O设备的数据传送方式设备的数据传送方式 8.1.1 I/O8.1.1 I/O端口端口 输入输入/输出:输入输出:输入/输出是指计算机与外部设备之间的信息交换,常
2、见输出是指计算机与外部设备之间的信息交换,常见的外部设备包括:显示器、键盘、打印机等。的外部设备包括:显示器、键盘、打印机等。接口电路:一般情况下,一种外部设备与微机连接需要一个接口电路,接口电路:一般情况下,一种外部设备与微机连接需要一个接口电路,称为称为I/OI/O接口(接口)。接口(接口)。I/OI/O端口:通常把接口电路中端口:通常把接口电路中CPUCPU可以访问的每一个寄存器称为可以访问的每一个寄存器称为I/OI/O端端口。口。I/OI/O端口地址:由于微机系统板中有若干接口电路,每一接口电路中端口地址:由于微机系统板中有若干接口电路,每一接口电路中又有若干又有若干I/OI/O端口,
3、为便于端口,为便于CPUCPU的访问,系统为每一个的访问,系统为每一个I/OI/O端口都赋予端口都赋予一个地址,称为一个地址,称为I/OI/O端口地址。端口地址。I/OI/O地址空间:微机的全部地址空间:微机的全部I/OI/O端口地址在一个独立的、不同于主机内端口地址在一个独立的、不同于主机内存的地址空间中编址,称为存的地址空间中编址,称为I/OI/O地址空间。地址空间。CPUCPU对外部设备的输入、输出操作实际上是通过接口电路中的对外部设备的输入、输出操作实际上是通过接口电路中的I/OI/O端口端口实现的实现的。8.1.2 I/O8.1.2 I/O指令指令 I/OI/O指令用来完成累加器与指
4、令用来完成累加器与I/OI/O端口间的数端口间的数据传送,包括输入指令据传送,包括输入指令ININ和和输出指令输出指令OUTOUT两条指令,每条指令都有直接和两条指令,每条指令都有直接和间接两种端口寻址方式。间接两种端口寻址方式。n 1 1输入输入指令指令 ININ 指令格式:指令格式:IN AL/AX/EAXIN AL/AX/EAX,addraddr 指指令令功功能能:将将指指定定的的I/OI/O端端口口中中的的内内容容输输入入到到累累加器加器AL/AX/EAXAL/AX/EAX中。中。1 1)直接端口寻址方式:)直接端口寻址方式:IN ALIN AL,addraddr ;ALaddrALa
5、ddr IN AX IN AX,addraddr ;AXaddrAXaddr+1+1,addraddr IN EAX IN EAX,addraddr ;EAXaddrEAXaddr+3+3,addraddr+2+2,addraddr+1+1,addraddr 2 2)间接端口寻址方式:)间接端口寻址方式:IN ALIN AL,DX DX ;AL DXAL DX IN AX IN AX,DX DX ;AXDX+1AXDX+1,DXDX IN EAX IN EAX,DX DX ;EAXDX+3EAXDX+3,DX+2DX+2,DX+1DX+1,DXDX 2.2.输出指令(输出指令(OUTOUT)指
6、令格式:指令格式:OUT OUT addraddr,AL/AX/EAXAL/AX/EAX 指令功能:指令功能:将累加器将累加器ALAL或或 AXAX或或 EAXEAX中的内容输出到指定的中的内容输出到指定的I/OI/O端口中。端口中。1 1)直接端口寻址方式:)直接端口寻址方式:OUT OUT addraddr,AL AL ;addrALaddrAL OUT OUT addraddr,AX AX ;addraddr+1+1,addrAXaddrAX OUT OUT addraddr,EAX EAX ;addraddr+3+3,addraddr+2+2,addraddr+1+1,addrEAXa
7、ddrEAX 2 2)间接端口寻址方式:间接端口寻址方式:OUT DXOUT DX,AL AL ;DX AL DX AL OUT DX OUT DX,AX AX ;DX+1DX+1,DX AX DX AX OUT DX OUT DX,EAX EAX ;DX+3DX+3,DX+2DX+2,DX+1DX+1,DX EAX DX EAX 需要注意的问题需要注意的问题 :1)IN1)IN指指令令的的目目的的操操作作数数和和OUTOUT指指令令的的源源操操作作数数只只能能使使用用累累加加器器ALAL、AXAX或或EAXEAX,若若需需要要将将I/OI/O端端口口中中的的内内容容输输入入(ININ指指令令
8、)到到其其它它寄寄存存器器或或内内存单元中,只能先输入到累加器中,然后再传送一次。存单元中,只能先输入到累加器中,然后再传送一次。2)2)在在直直接接寻寻址址方方式式中中,端端口口地地址址在在指指令令中中直直接接给给出出。它它是是个个8 8位位的的立立即即数数,即即端端口口的的8 8位位物物理理地地址址,其其范范围围是是0 0 255255(0 0 FFHFFH),直直接接端端口口寻址方式只限于外设的前寻址方式只限于外设的前256256个端口。个端口。3)3)在在间间接接寻寻址址方方式式中中,端端口口地地址址通通过过DXDX间间接接给给出出,其其范范围围为为0 0 6553565535(0 0
9、 FFFFHFFFFH),),所有所有I/OI/O端口都可以使用这种寻址方式。端口都可以使用这种寻址方式。4)4)输输入入/输输出出指指令令提提供供了了字字节节、字字和和双双字字三三种种使使用用方方式式,选选用用哪哪一一种种,取决于取决于I/OI/O端口的宽度,如为字端口,则选用字操作指令。端口的宽度,如为字端口,则选用字操作指令。5 5)输输入入/输输出出指指令令中中的的端端口口号号或或寄寄存存器器DXDX的的内内容容均均为为端端口口的的地地址址,而而传送的是端口中的内容。传送的是端口中的内容。6 6)对对于于前前256256个个端端口口(0 0 FFHFFH),既既可可使使用用直直接接寻寻
10、址址,又又可可使使用用间间接接寻寻址址;而而当当端端口口号号超超过过256256时时,只只能能使使用用间间接接寻寻址址,也也就就是是要要先先把把端端口地址放到口地址放到DXDX中,然后再进行输入或输出。中,然后再进行输入或输出。例如,将端口例如,将端口60H60H中的内容送入寄存器中的内容送入寄存器BLBL中,可使用下列指令序列:中,可使用下列指令序列:IN ALIN AL,60H60H MOV BL MOV BL,ALAL 又又例例如如,将将内内存存缓缓冲冲区区BUFFERBUFFER中中的的一一个个字字输输出出到到地地址址为为125H125H的的字字端端口口中中,可使用下列指令序列:可使用
11、下列指令序列:MOV BXMOV BX,OFFSET BUFFEROFFSET BUFFER MOV AX MOV AX,BXBX MOV DX MOV DX,125H125H OUT DX OUT DX,AXAX7 7)输入、输出指令都不影响标志位。输入、输出指令都不影响标志位。8.1.3 I/O8.1.3 I/O设备的数据传送方式设备的数据传送方式 1.1.程序直接控制的程序直接控制的I/OI/O方式方式 (1 1)立即传送方式)立即传送方式 (2 2)程序查询方式)程序查询方式 2.2.中断传送方式中断传送方式 3.3.直接存储器存取方式(直接存储器存取方式(DMADMA方式)方式)1.
12、1.程序直接控制的程序直接控制的I/OI/O方式方式(1 1)立即传送方式)立即传送方式 立即传送方式又称为无条件传送方式,立即传送方式又称为无条件传送方式,它是最简单的一种输入它是最简单的一种输入/输出传送方式。在输出传送方式。在该方式中,认为外设总是处于准备就绪状该方式中,认为外设总是处于准备就绪状态,程序不必查询外设的状态,当需要与态,程序不必查询外设的状态,当需要与之交换数据时,就直接执行输入、输出指之交换数据时,就直接执行输入、输出指令来完成数据的传送。令来完成数据的传送。例例8-18-1为立即传送方为立即传送方式的实例。式的实例。(2 2)程序查询方式)程序查询方式 程序查询方式是
13、指:在数据传程序查询方式是指:在数据传送之前,送之前,CPUCPU要先查询外设的当前要先查询外设的当前状态,只有当外设处于准备就绪或状态,只有当外设处于准备就绪或空闲状态时,才执行输入输出指令空闲状态时,才执行输入输出指令进行数据传送。否则,进行数据传送。否则,CPUCPU循环查循环查询,直到外设准备就绪为止。所以,询,直到外设准备就绪为止。所以,程序查询方式比立即传送方式可靠程序查询方式比立即传送方式可靠性更高。例性更高。例8-28-2为程序查询方式的为程序查询方式的实例。实例。2.2.中断传送方式中断传送方式 中中断断传传送送方方式式的的特特点点是是:主主机机CPUCPU正正常常执执行行操
14、操作作,当当外外设设需需要要进进行行I/OI/O操操作作时时,会会向向CPUCPU发发出出一一个个“申申请请”信信号号,请请求求CPUCPU处处理理。这这时时,CPUCPU暂暂时时中中断断当当前前正正在在执执行行的的程程序序(即即主主程程序序),转转去去执执行行为为输输入入/输输出出设设备备服服务务的的中中断断处处理理程程序序,服服务务完完毕毕,再再返返回回到到被被中中断断的程序处继续执行。的程序处继续执行。采用中断传送方式,采用中断传送方式,CPUCPU不必花大量的时间查询不必花大量的时间查询外设状态,而使外设状态,而使CPUCPU和外设并行工作,只有当外设准和外设并行工作,只有当外设准备好
15、时,用很短的时间去处理一下,处理完毕又回到备好时,用很短的时间去处理一下,处理完毕又回到主程序继续执行,可大大提高主程序继续执行,可大大提高CPUCPU的工作效率。的工作效率。3.3.3.3.直接存储器存取方式直接存储器存取方式直接存储器存取方式直接存储器存取方式(DMADMADMADMA方式)方式)方式)方式)DMADMADMADMA方方方方式式式式的的的的思思思思路路路路是是是是:外外外外设设设设与与与与内内内内存存存存间间间间的的的的数数数数据据据据传传传传送送送送不不不不经经经经过过过过CPUCPUCPUCPU,也也也也不不不不需需需需要要要要CPUCPUCPUCPU的的的的干干干干预
16、预预预,在在在在外外外外设设设设与与与与内内内内存存存存间间间间开开开开设设设设直直直直接接接接通通通通道道道道,由由由由一一一一个个个个专专专专门门门门的的的的硬硬硬硬件件件件控控控控制制制制器器器器来来来来直直直直接接接接控控控控制制制制外外外外设设设设与与与与内内内内存存存存间间间间的的的的数数数数据据据据交交交交换换换换,这这这这种种种种方方方方式式式式就就就就叫叫叫叫做做做做直直直直接接接接存存存存储储储储器器器器存存存存取取取取方方方方式式式式,简简简简称称称称DMADMADMADMA方方方方式式式式。用来控制用来控制用来控制用来控制DMADMADMADMA操作的硬件控制器就是操作
17、的硬件控制器就是操作的硬件控制器就是操作的硬件控制器就是DMADMADMADMA控制器。控制器。控制器。控制器。DMADMADMADMA方式可大大提高批量数据的传送速度,方式可大大提高批量数据的传送速度,方式可大大提高批量数据的传送速度,方式可大大提高批量数据的传送速度,对于硬盘这类设备,采用对于硬盘这类设备,采用对于硬盘这类设备,采用对于硬盘这类设备,采用DMADMADMADMA方式很合适。方式很合适。方式很合适。方式很合适。DMADMADMADMA方式主要是在硬件方式主要是在硬件方式主要是在硬件方式主要是在硬件DMADMADMADMA控制器的控制下实现的,控制器的控制下实现的,控制器的控制
18、下实现的,控制器的控制下实现的,在这里不作详细讨论。在这里不作详细讨论。在这里不作详细讨论。在这里不作详细讨论。【例例8-18-1】设设计计一一个个发发声声程程序序。通通过过PBPB口口的的第第1 1位位输输出出一一串串500500个个周周期期的的方方波,使扬声器发声。波,使扬声器发声。1)1)分析分析 在在PCPC机机系系统统板板上上,有有一一可可编编程程并并行行接接口口芯芯片片8255A8255A,其其内内部部有有三三个个8 8位位的的数数据据端端口口:PAPA口口、PBPB口口和和PCPC口口,其其端端口口地地址址分分别别为为60H60H、61H61H和和62H62H。假假设设PBPB口
19、口(61H61H)被被设设置置成成输输出出口口,使使其其中中第第1 1位位PBPB1 1 由由0 0变变为为1 1延延迟迟一一段段时时间间再再由由1 1变变为为0 0,使使得得与与门门不不断断的的打打开开关关闭闭,形形成成脉脉冲冲方方波波,通通过过放放大大器器放放大大送送到到扬扬声声器器,控控制制扬扬声声器器发发声声。该该端端口口的的第第0 0位位和和定定时时器器连接,不用该定时器发声,则该位置连接,不用该定时器发声,则该位置0 0。STACK SEGMENT STACKSTACK SEGMENT STACK DW 100H DUP(?)DW 100H DUP(?)STACK ENDSSTAC
20、K ENDSDATA SEGMENTDATA SEGMENTCOUNT DW 1000 COUNT DW 1000 ;输出输出500500个周期的方波,需循环个周期的方波,需循环10001000次次D_CNT DW 2000 D_CNT DW 2000 ;延时程序的循环次数延时程序的循环次数DATA ENDSDATA ENDSCODE SEGMENTCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK ASSUME CS:CODE,DS:DATA,SS:STACKMAIN PROC FARMAIN PROC FAR MOV AX,DATA MOV AX,DA
21、TA MOV DS,AX MOV DS,AX MOV CX,COUNT MOV CX,COUNT ;交替输出交替输出0 0和和1 1,循环,循环10001000次次 IN AL,61H IN AL,61H ;输入输入PBPB口锁存的数据口锁存的数据 AND AL,0FEH AND AL,0FEH ;将;将PBPB0 0清零,关闭定时器清零,关闭定时器lOP1:XOR AL,02 lOP1:XOR AL,02 ;将第将第1 1位变反位变反 OUT 61H,AL OUT 61H,AL ;再送回再送回PBPB口口 PUSH CX PUSH CX ;保存保存CXCX的值的值 MOV CX,D_CNT
22、MOV CX,D_CNT ;延时一段时间延时一段时间LOP2:LOOP LOP2 LOP2:LOOP LOP2 POP CX POP CX ;恢复恢复CXCX的原值的原值 LOOP LOP1 LOOP LOP1 ;循环循环10001000次次 MOV AX,4C00HMOV AX,4C00H INT 21H INT 21HMAIN ENDPMAIN ENDPCODE ENDSCODE ENDS END MAIN END MAIN 3)3)3)3)根据流程图编写程序:根据流程图编写程序:根据流程图编写程序:根据流程图编写程序:2)2)2)2)程序流程图如下:程序流程图如下:程序流程图如下:程序流
23、程图如下:【例例8-28-2】采采用用程程序序查查询询方方式式,把把字字节节单单元元BUF2BUF2中中的的数数据据从从串串口口1 1(打打印印机)输出。机)输出。1)1)分析分析 在在 PCPC机机 系系 统统 中中,1 1号号 串串 行行 接接 口口(COM1COM1)中中有有两两个个端端口口:数数据据端端口口地地址址为为3F8H3F8H(通通过过读读写写信信号号,区区分分是是输输入入数数据据端端口口还还是是输输出出数数据据端端口口),状状态态端端口口地地址址为为3FDH3FDH,其其中中,第第0 0位位为为1 1表表示示接接收收数数据据准准备备好好;第第5 5位位为为1 1表表示示发送寄
24、存器空。发送寄存器空。2)2)程序流程图如右程序流程图如右STACK SEGMENT PARA STACKSTACK SEGMENT PARA STACK DW 100H DUP(?)DW 100H DUP(?)STACK ENDSSTACK ENDSDATA SEGMENTDATA SEGMENTBUFF DB HELLO!BUFF DB HELLO!;待输出的字符串待输出的字符串B_LEN EQU$-BUFF B_LEN EQU$-BUFF ;待输出数据的个数待输出数据的个数DATA ENDSDATA ENDSCODE SEGMENTCODE SEGMENT ASSUME CS:CODE,
25、DS:DATA,SS:STACK ASSUME CS:CODE,DS:DATA,SS:STACKMAIN PROC FARMAIN PROC FAR MOV AX,DATA MOV AX,DATA MOV DS,AX MOV DS,AX MOV CX,B_LEN MOV CX,B_LEN ;设置循环初始值设置循环初始值 MOV BX,OFFSET BUFF MOV BX,OFFSET BUFF ;将待输出的字符串的偏移地址送将待输出的字符串的偏移地址送BXBX中中LOP1:MOV DX,3FDH LOP1:MOV DX,3FDH ;状态端口地址状态端口地址3FDH3FDHTEST2:IN AL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章 输入输出与中断 输入输出 中断
限制150内