好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

输入输出和中断.ppt

131页
  • 卖家[上传人]:洪易
  • 文档编号:49268291
  • 上传时间:2018-07-26
  • 文档格式:PPT
  • 文档大小:657.50KB
  • / 131 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第5章 输入输出和中断5.1 I/O设备数据传送方式5.2 中断传送方式5.3 DOS 和BIOS中断调用方式5.4 综合举例开 始5.1 I/O设备数据传送方式 5.1.1 端口寻址方式5.1.2 CPU与外设的传送方式5.1.1 端口寻址方式 接口芯片实际占用的 端口数目端口号(16 进制)8237DMA控制器1600~0F8259A中断控制器220~218255并行接口460~63DMA页面寄存器( 74LS670)480~83NMI寄存器1A08253计数器/定时器440~43表5.1 IBM-PC接口芯片的端口地址 分配表返回本节5.1.2 CPU与外设的传送方式控制信息:是由CPU发送给外部设备的,命令其 处于某种方式或执行某种操作状态信息:从接口输入的状态信息表示I/O设备当 前的状态数据信息: 是I/O设备和CPU真正要交换的信息数据信息 可分为三种类型:数字量、模拟量 和开关量各种外设的工作速度相差很大,根据其工 作状态,大致可分为三类:l 外设的工作状态是可以确定的l 外设的工作状态是不能确定的l 高速的外设与计算机进行数据交换。

      CPU与外设之间传输数据的控制方式有 三种:即程序方式、中断方式和DMA方式 I/O传输指令输入指令IN AL,PORT IN AX,PORT IN AL,DX IN AX,DXI/O传输指令输出指令 OUT PORT,AL OUT PORT,AX OUT DX,AL OUT DX,AX1.程序方式 (1)无条件传输方式,如图5.1所示 【例5.1】用一个8位输出锁存器控制8个 发光二极管,使发光管从上向下依次一个 一个地闪亮,每个发光管亮一段规定的时 间设输出锁存器的地址为84H图5.1 用无条件传送方式的例子控制程序如下:START:MOV AL,01H ;控制代码01H→ALNEXT:OUT 84H,AL;(AL)→84H CALL DELAY ;延时一定时间ROL AL,1;控制代码循环左移1位JMP NEXT ;无条件转NEXT继续程序循环DELAY PROC ;定义延时子程序DELAYPUSHAX MOVAX,COUNT TIME: DECAX (2)条件传送方式JNZTIME POPAX RET ;返回调用程序DELAY ENDP ;子程序调用结束【例5.2】假设从某输入设备上输入一组数据送缓 冲区,接口电路如图5.2所示:程序如下:DATA SEGMENTMESSIDB “BUFFER OVERFLOW”, “$”BUFFDB 60 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV BX,OFFSET BUFF ;送缓冲区指针MOV CX,60 ;送计数初值OUT0FCH,AL;启动设备WAIT:INAL,0FAH;查询状态,READY=0,则等待TEST AL,01HJZWAITWAIT:INAL,0FAH;查询状态READY=0,则等待 TEST AL,01HJZWAITINAL,0F8H;输入数据MOV [BX],ALINC BXLOOP WAIT ;检测缓冲区是否满,不满再输 入MOVDX,OFFSET MESSI;缓冲区满,输 出标志字符串。

      MOVAH,09H INT21HMOVAH,4CH INT21HCODEENDS ENDSTART图5.2 查询式输入接口电路C P U打 印 机 控 制 器打 印 机DBSTBBUSY CBDBAB图5.3 打印机连接示意图 【例5.3】向打印机输出字符图5.4 [例5.3]程序流程图源程序:┆MOV BX ,OFFSET BUFFER;置缓冲区 偏移量MOV CX,CHRTL ;置输出字符计数器BG: MOV AL,[BX];取字符MOV DX,378H;输出字符到控制器OUTDX,ALMOV DX,379H;读打印机状态WT: INAL,DXTEST AL,80H ;判‘忙’否?JZWT ;忙,重查询MOV DX,37AH ;形成选通信号MOV AL,0DH ;令打印机打印字符OUTDX,AL MOV AL,0CHOUTDX,ALINCBX;指向下一输出字符LOOP BG ┆2.中断方式当外设需要与CPU进行数据交换时,由外 设向CPU发出中断请求,当外部设备完成 一次输入或输出操作后,主动向CPU报告 (即中断请求),请求CPU为它服务。

      允 许CPU启动多个外设工作,即允许CPU与多个外设同时工作3.直接存储器存取方式(DMA)方式DMA方式,主要是利用DMA控制器来管理数 据的输入输出操作如图5.5、5.6所示由 DMA控制器向地址总线发出存储器地址信号, 并给出存储器读或写命令,就可以把存储器中 读出的数据送到外部设备或者把外部设备输出 的数据写入存储器中DMA主要是利用程序实现对DMA控制器的初 始化(置控制字),然后由DMA控制器管理数 据传送存 储 器外 部 设 备C P UDMA 请求DMA 响应HOLDHLDADMA 控 制 器图5.5 DMA控制器与CPU关系图 图 5.6 DMA方式工作过程图返回本节5.2 中断传送方式5.2.1 概述5.2.2 8086/8088的中断系统返回本章目录5.2.1 概述1.中断、中断源及中断系统 2.中断的作用(1)并行操作(2)实时处理(3)故障处理3.中断源种类及中断类型(1)中断源的种类l 硬件故障l输入/输出设备l 外部事件(2)中断类型根据是否可屏蔽,分为不可屏蔽中断和可屏蔽中断根据位置不同, 分为内中断和外中断根据处理程序入口的方法,分为向量中断和非向量中断。

      根据产生中断的原因,分为软件中断和硬件中断4. 中断优先级和中断嵌套IBM-PC规定中断的优先级次序为:优先级高 内中断(语法错,INT0,INT )非屏蔽中断(NMI)可屏蔽中断(INTR)低 单步中断图5.7中断嵌套程序执行过程↓↓主程序高级中断程序更高级中断程序高级中断程序低级中断程序5.中断处理过程微型机在运行程序的过程中,若出现中断 申请时,CPU及时地择优响应,立即停止 现行程序的执行,并保护现场,接着进行 相应的中断服务服务完毕之后,立即恢 复被中断的现场,返回被中断程序的断点 ,继续往下执行中断处理大致包括如下 过程:中断请求、中断响应、中断处理及 中断返回返回本节5.2.2 8086/8088的中断系统 1.中断源8086/8088系统设有如下的中断源:l 外部中断:包括可屏蔽中断INTR和不可屏 蔽中断NMIl 内部中断:包括除法错中断、溢出中断、 软中断、和单步中断其中断源间的关系如图5.8所示 图5.8 8086/8088的中断源 (1)内部中断内部中断简称内中断,又称软件中断它不需 要外部硬件支持并且不受中断标志位状态的影 响。

      8086/8088内部中断有以下5种:l 除数为0中断——类型0中断l 单步中断——类型1中断l 断点中断——类型3中断l 溢出中断——类型4中断l 中断指令——指令INTn中断(2)外部中断l 不可屏蔽中断:常用于紧急故障处理或 紧迫事件处理中l 可屏蔽中断:可屏蔽中断的设置主要是 为了实现多中断的处理和中断嵌套的应用 2.中断向量和中断向量表图5.9 8086/8088系统的中断向量表表5.2 常用中断类型用其名称3.设置中断向量用指令来为中断类型N设置中断向量:MOV AX,0MOV ES,AX MOV BX,N*4;中断入口地址MOV AX,OFFSET INTHANDMOV ES:WORD PRT[BX],AX ;设置中断处理程 序INTHANDMOV AX,SEG INTHAND ;的入口地址MOV ES:WORD PRT[BX+2],AX┆INTHAND: ;中断处理程序┆IRET【例5.4】使用DOS功能调用存取中断向量┆MOV AL,N MOV AH,35H;调用DOS功能35HINT21HPUSH ES ;保存原中断向量PUSH BX PUSH DSMOV AX,SEG INTHANDMOV DS,AX;置用户定义的中断处理MOV DX,OFFSET INTHAND;程序INTHAND的入口MOV AL,N ;地址(段地址和偏移地址)MOV AH,25H ;设置新的中断向量INT21H POPDS POPDX;恢复原中断向量POPDS MOVAL,N MOVAH,25H INT21HRET INTHAND: ;中断处理程序┆IRET4.中断过程当中断发生时,由硬件自动完成下列动作:(1)取中断类型号N。

      2)标志寄存器(PSW)内容入栈3)当前代码段寄存器(CS)内容入栈4)当前指令计数器(IP)内容入栈5)禁止外部中断和单步中断(IF=0,TF=0) 6)从中断向量表中取4*N的字节内容送IP,取 4*N+2的字节内容送CS7)转中断处理程序 图5.10 中断响应过程5.8259A可编程中断控制器例如,只允许打印机中断,可设置如下中断字:MOV AL,01111111B OUT 21H,AL如果系统要新增设打印机中断,则可用下列指令实现 :IN AL,21H ANDAL,01111111BOUT21H,AL结束外中断用下面的指令: MOV AL,20H OUT20H,AL 6.中断处理程序图5.11 中断屏蔽寄存器和中断 命令寄存器下面是主程序为中断所做的准备工作和硬件 ,(包括CPU和外设接口)自动完成的动作 1)设置中断和向量2)设置设备的中断屏蔽位3)设置CPU的中断允许位IF(开中断) 4)外设接口送中断请求给CPU5)当前指令执行完成后,CPU送响应 信号给外设接口。

      6)CPU接收中断类型号7)当前的PSW,CS和IP保存入栈8)清除IF,TF9)中断向量送IP和CS编写中断处理子程序的步骤,请注意与子程序编写 的一些不同之处1)保存寄存器内容2)如允许中断嵌套,则开中断(STI)3)处理中断4)关中断5)送中断结束命令(EOI)给中断命令寄存器6)恢复寄存器内容7)返回被中断的程序(IRET)例5.5】编一段中断处理程序,在主程序运行的 过程中,每隔10秒钟响铃一次,同时在屏幕上显示 “The bell is ring!”编程如下:DATASEGMENTCOUNTDW 1MESS DB ‘The bell is ring!’,0DH,0AH,’$’DATAENDSCODESEGMENTAS。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.