第六章输入输出与中断讲义

上传人:今*** 文档编号:107089514 上传时间:2019-10-17 格式:PPT 页数:55 大小:594KB
返回 下载 相关 举报
第六章输入输出与中断讲义_第1页
第1页 / 共55页
第六章输入输出与中断讲义_第2页
第2页 / 共55页
第六章输入输出与中断讲义_第3页
第3页 / 共55页
第六章输入输出与中断讲义_第4页
第4页 / 共55页
第六章输入输出与中断讲义_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《第六章输入输出与中断讲义》由会员分享,可在线阅读,更多相关《第六章输入输出与中断讲义(55页珍藏版)》请在金锄头文库上搜索。

1、1,第六章 输入输出与中断,2,输入输出: 输入:从计算机外部把信息传入计算机主机 输出:将信息从计算机主机传送到外部 接口: 连接计算机与外部设备的电路; 计算机与外部设备的信息交换是通过“接口(Interface)”电路间接实现的 。,6.1 输入/输出接口,3,4,5,CPU与外部设备的连接,6,端口(port) 端口:接口电路内部的寄存器/缓冲器。 这些寄存器/缓冲器有一个专用的地址,CPU可以使用这个地址读写这些寄存器/缓冲器。 端口的种类: (1)数据输入端口 (2)数据输出端口 (3)状态端口(输入) (4)控制端口(输出),7,CPU与接口之间的信号 CPU与接口之间传送三种类

2、型的信号: (1)数据信号 (2)状态信号 (3)控制信号,8,I/O端口的编址方式 1 统一编址(存储器映象编址) 这种编址方式的特点是存储器和I/O端口共用统一的地址空间。 所有访问存储器的指令(包括存储器的算术、逻辑运算指令)都可用于I/O端口。,9,存储器映象编址的优点: 任何对存储器数据的指令都可用于I/O端口的数据操作,不需专用I/O指令,从而使系统编程比较灵活; 存储器映象编址的缺点: I/O占用了一部分内存空间, 且指令的机器码也长, 执行时间较长。,10,11,2 独立编址(专用的I/O端口编址) 存储器和I/O端口在两个独立的地址空间中,I/O端口的读、写操作由硬件信号 和

3、 来实现,访问I/O端口用专用的IN指令和OUT指令。,12,独立编址方式的优点 I/O端口的地址码较短(一般比同一系统中存储单元的地址码短); 译码电路比较简单,存储器同I/O端口的操作指令不同,程序比较清晰; 存储器和I/O端口的控制结构相互独立,可以分别设计。 独立编址方式的缺点 I/O指令的功能一般不如存储器访问指令丰富; 程序设计灵活性较差。,13,14,1. IN/OUT(输入/输出)指令 IN和OUT指令的共同特点是:必须使用累加器AL、AX或EAX进行数据的传送。 输入时,IN指令把端口的数据/状态信息读入AL(8位)、AX(16位)或EAX(32位)中。 输出时,要输出的数据

4、/命令先放人AL(8位)、AX(16位)或EAX(32位)中,然后执行OUT指令,将AL、AX或EAX中信息向端口输出,输入/输出指令,15,1. IN/OUT(输入/输出)指令(p36 2.2.7) (1)IN(输入)指令 指令格式:IN ACC, PORT IN ACC, DX 操作:AL/AX/EAX (PORT) AL/AX/EAX (DX) 功能:把指定端口中的数据读入AL、AX或EAX中,16,输入指令举例: 端口地址在0255之间: IN AL,35H ;将地址为35H的端口数据送AL 端口地址在065535之间: MOV DX,21H ;端口地址放入DX IN AL,DX ;把

5、地址为21H的端口数据送AL中 MOV DX,312H ;端口地址放入DX IN EAX,DX ;把地址为312H的端口数据(32位) ;送EAX中,17,(2)输出指令 指令格式:OUT PORT, ACC OUT DX, ACC 操作:(PORT) AL/AX/EAX (DX) AL/AX/EAX 功能:把AL、AX或EAX中的数据向指定端口输出,18,输出指令举例: 端口地址在0255之间: OUT 60H,AL ;将AL中数据送到地址 ; 为60H的8位端口中 端口地址在065535之间: MOV DX,21H ;端口地址送入DX OUT DX,AL ;将AL中数据从DX所 ; 指定的

6、8位端口输出 MOV DX,310H ;端口地址送入DX OUT DX,EAX ;将EAX中数据向DX ;所指定的32位端口输出,19,1. 输入输出方式 编写输入、输出程序,必须根据外设的工作方式来决定输入/输出采用的方式。 三种基本的程序控制输入输出方式: (1)无条件输入/输出 (2)查询式输入/输出 (3)中断方式,程序控制输入/输出,20,外设始终处于就绪状态,CPU在需要时可随时与外设交换数据,而无须知道外设所处的状态,就可以使用无条件输入/输出方式进行数据的传输,例:扬声器发声电路,无条件方式输入/输出,21,SOUND PROC PUSH AX ; 保护现场 PUSH CX I

7、N AL, 61H ; 读61H端口“当前值” AND AL, 11111110B OUT 61H, AL ; 使D0=0,关闭Timer2 TRIG: IN AL, 61H ; 读61H端口“当前值” XOR AL, 2 OUT 61H, AL ; D1取反后输出,产生周期性信号 MOV CX, DX LOOP $ ; 延时,控制1/0输出时间,控制发声频率 DEC BX JNZ TRIG ; 延时,控制发声的总时间 POP CX ; 恢复现场 POP AX RET SOUND ENDP,22,3. 查询方式输入/输出 CPU必须通过“读”外部设备的状态端口,了解外部设备的当前状态,确定能否

8、进行“数据传输”,23,(1)查询式输入 查询式输入的接口电路中,除了有一个数据输入端口,还必须有一个用于反映外设状态的状态端口 状态端口的每一位反映设备的一种状态,例如,用D7=1表示设备已经完成了数据准备,可以传输数据。D7=0则表示尚未完成数据准备,不能进行数据传输。这一位常常被称为“READY”。,24,IN_TEST: IN AL, STATUS_PORT ;读状态端口 TEST AL, 80H ;检查数据准备是否就绪(D7=1?) JZ IN_TEST ;未就绪,重新读状态端口 IN AL, DATA_PORT ;已就绪,读取数据,假设输入接口内数据端口地址为DATA_PORT,状

9、态端口地址为STATUS_PORT,其中D7为“READY”位。一个数据的查询式输入过程如下:,25,(2)查询式输出 采用查询方式进行输出的接口电路中,有一个用于数据输出的端口,还有一个用于反映外设状态的端口。 输出设备一个常用的状态位称作“BUSY”,BUSY=1表示设备正处于数据准备阶段(“忙”);BUSY=0表示设备已经完成数据准备(“空闲”),可以进入数据传输。,26,打印机接口内的状态、控制端口(寄存器),27,. MODEL SMALL . DATA OUT_DATA DB 0AH, 0DH, This is an example. COUNT EQU $-OUT_DATA .

10、CODE START: MOV AX, DATA MOV DS, AX ; 装载DS LEA SI, OUT_DATA ; 装载输出缓冲区指针 MOV CX, COUNT ; 装载计数器初值 AGAIN: MOV DX, 379H IN AL, DX ; 读状态端口 TEST AL, 80H ; 测试D7位(“忙”位) JZ AGAIN ; 打印机“忙”则等待,例8-1查询方式打印机输出程序,28,MOV DX, 378H ; 数据端口地址装入DX MOV AL, SI ; 取待输出字符代码 OUT DX, AL ; 字符代码向数据端口输出 MOV DX, 37AH ; 命令端口地址送DX M

11、OV AL, 0DH ; 打印机命令字:“选通”位置“1” OUT DX, AL ; 将“选通”位置“1” NOP ; 延时 MOV AL, 0CH ; 打印机命令字:“选通”位置“0” OUT DX, AL ; 将“选通”位置“0” INC SI ; 修改输出缓冲区指针 LOOP AGAIN ; 循环控制 OVER:MOV AX,4C00H INT 21H END START,29,30,BEEP1 PROC NEAR PUSH AX PUSH CX PUSH DX PUSH DI MOV AL,0B6H OUT 43H,AL MOV DX,12H MOV AX,34DAH DIV DI O

12、UT 42H,AL MOV AL,AH,31,OUT 42H,AL MOV AL,03H OUT 61H,AL DELAY2: MOV CX,12500 DELAY1: LOOP DELAY1 DEC BX JNZ DELAY2 MOV AL,00H OUT 61H,AL POP DI POP DX,32,POP CX POP AX RET BEEP1 ENDP,33,中断与中断源 中断:由于某种事件的发生,使CPU中断(暂时停止)正在执行的程序而转去执行该事件的处理程序,为该事件服务结束后,继续执行原来被中断的程序,这个过程称为中断。 中断源:引起中断的事件称为中断源 。 断点:由于中断,将

13、要执行但尚未执行的指令地址称为“断点”,包括16位段基址和16位偏移地址。,中断的概念,34,2. 中断分类 中断可以划分为外部中断和内部中断两大类 (1)内部中断 中断指令INT引起的中断(软件中断) 由于CPU的某些错误引起的中断,如除法错中断、溢出中断(异常中断) 为调试程序设置的中断(陷阱中断) (2)外部中断 不可屏蔽中断(NMI),通常代表CPU外部的故障 可屏蔽中断(INTR),外设完成数据准备,请求进行数据传输,35,80X86CPU中断分类,36,非屏蔽中断NMI 硬件中断(外部中断) 可屏蔽中断INTR 溢出中断 中断 软件中断 (内部中断) 除法错中断 单步中断 INT

14、n 指令中断 断点中断,37,软件中断(内部中断) 除法错中断:类型0中断。也称为除数为0的中断。 单步中断:类型1中断。执行一条指令产生一次中断。CPU进入单步中断的依据是标志寄存器中的单步标志TF为1。 断点中断:类型3中断。断点可以设置在程序的任何地方,设置断点实际上是把一条断点指令INT3插入程序中,CPU执行到断点处的INT3指令,便产生一个中断。 溢出中断:类型4中断。如果溢出标志OF为1,有一条专门的指令INTO来中断发生溢出的算术操作。,38,中断指令INT引起的内中断:CPU执行完一条INT n指令后,会立即产生中断,中断指令的操作数n指出中断类型。实际上就是利用软件来调用中

15、断处理子程序。INT指令可以指定00FFH中的任何类型号。,39,软件中断有如下特点: 用一条指令来进入中断处理子程序,并且中断类型码由指令提供 进入中断时,不需要执行中断响应总线周期,也不从数据总线读取中断类型码 不受中断允许标志IF的影响,40,硬件中断 非屏蔽中断:是通过CPU的引脚NMI引入的,不受中断允许标志IF的屏蔽,并且在整个系统中只有一个非屏蔽中断。非屏蔽中断是一个由低到高的上升沿。每当NMI端进入一个上升沿信号时,CPU就会在结束当前指令后,进入非屏蔽中断处理程序。,41,可屏蔽中断:当CPU 在INTR引脚上接收到一个高电平的中断请求信号,并且当前的中断允许标志为1时,CP

16、U就会在当前指令执行完以后,开始响应外部的中断请求,具体地说,就是CPU往INTA引脚上发两个负脉冲,外设接到第二个负脉冲以后,立即往数据线上送中断类型码。CPU在响应外部中断,并进入中断子程序的过程中,要依次作下面几件事: 从数据总线上读取中断类型码,将其存入内部暂存器。 将标志寄存器的值推入堆栈。 将IF,TF清零。,42,将断点保持到堆栈中。 根据中断类型码,到内存0000段的中断向量表中找中断向量,再根据中断向量转入响应的中断处理子程序。 对于非屏蔽中断和可屏蔽中断的处理仅仅有两点差别:即CPU迂到可屏蔽中断请求时,先要判断IF是否为1,如果为1,CPU便进入中断响应过程,进入响应过程后,CPU

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号