计算机课件第8章 输入输出与中断

上传人:woxinch****an2018 文档编号:44852144 上传时间:2018-06-14 格式:PPT 页数:85 大小:417.50KB
返回 下载 相关 举报
计算机课件第8章 输入输出与中断_第1页
第1页 / 共85页
计算机课件第8章 输入输出与中断_第2页
第2页 / 共85页
计算机课件第8章 输入输出与中断_第3页
第3页 / 共85页
计算机课件第8章 输入输出与中断_第4页
第4页 / 共85页
计算机课件第8章 输入输出与中断_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《计算机课件第8章 输入输出与中断》由会员分享,可在线阅读,更多相关《计算机课件第8章 输入输出与中断(85页珍藏版)》请在金锄头文库上搜索。

1、 前章知识回顾n 串传送指令及程序设计n 串比较指令及程序设计n 串扫描指令及程序设计n 串元素的存取指令及程序设计1、串操作指令和重复前缀指令 的使用?2、如何向串操作指令所需的段 寄存器和变址寄存器赋初值?第8章 输入输出与中断本章学习目标n 输入输出及控制方式n 中断技术n DOS与BIOS中断调用通过本章学习,应掌握以下内容:8.1 输入输出8.2 中断8.1 输入输出数据状态CPU接口外设控制图8-1 I/O接口一般来说,I/O接口的需要解 决以下问题: 速度匹配 信号电平匹配 信息格式及类型转换8.1.1 输入输出概述1. CPU与I/O设备间交换的信息类 型 数据信息 状态信息

2、控制信息 2. 端口的编址方式 I/O端口与存储器统一编址 I/O端口单独编址8.1.2 输入输出指令1.IN指令从指定的端口地址中取数据送入 累加器中IN AL,PORT ;PORT为符号端口地址IN AX,PORTIN AL,DX ;端口地址在DX中(255)IN AX,DX2.OUT指令用来把累加器的内容送往指定的 外设端口中OUT PORT,ALOUT PORT,AXOUT DX,ALOUT DX,AX例如:IN AL,40H ;AL(40H) OUT 80H,AL ;(80H) ALMOV DX,379HIN AL,DX ;AL (379H)1.无条件传送方式例8-1 假设有一个含8

3、个开关的输入 接口电路,其端口地址为80H,读取开 关数据并存入BUF中。其程序段为:LEA BX,BUFIN AL,80HMOV BX,AL8.1.3 数据传送控制方式例8-2 若一个含8个LED的输出接口电路 ,其端口地址为82H,编写程序显示TAB中 的20个数据,每个数据的显示间隔是5s。程序段为:LEASI,TAB MOVCX,20 LP: MOVAL,SI INCSI OUT82H,AL ;输出数据 CALL DELAR5s ;延时5秒子程序 LOOP LP ;计数型循环2.查询传送方式CPU与外设交换数据时,很难保 证输入设备已经准备好数据或者输 出设备已经处于空闲状态。因此,

4、一般需要获取外设就绪且I/O接口 已做好数据传送的情况下才能进行 数据传送,这就是查询传送方式。开始结束读外设状态准备好?传送数据N传送完?NYY图8-2 查询传送工作流程例8-3 假设有一个输入接口电路,其状态端口地 址为SADDR1,状态字的D0位为1表示数据准备好 , 数据端口地址为DADDR1,以查询方式输入 COUNT1个数据,输入的数据存放在BUF中。查询输入数据的程序段:LEA BX,BUFMOV CX,COUNT1LP: IN AL,SADDR1 ;读状态端口TEST AL,01HJNZ LP ;未准备好转移IN AL,DADDR1 ;读数据端口MOV BX,ALINC BXL

5、OOP LP ;计数型循环例8-4 假设有一个输出接口电路,其状态端口地 址为SADDR2,状态字的D1位为1表示外设空闲,数 据端口地址为DADDR2, 现以查询方式将TAB中的 COUNT2个数据输出。查询输出数据的程序段:LEA BX,TABMOV CX,COUNT2 LP: IN AL,SADDR2 ;读状态端口TEST AL,02HJNZ LP ;未准备好转移MOV AL,BXOUT DADDR2,AL;写数据端口INC BXLOOP LP ;计数型循环3.中断传送方式指输入设备数据准备好或输出设备空闲时 ,通过I/O接口向CPU发出中断请求。 CPU每执行一条指令后都会检查是否有中

6、断请求, 只要有满足中断响应的请求, CPU便暂停执 行当前程序,转去执行中断处理程序,进行 数据传送,待数据传送完后, CPU返回到被 中断的程序,继续执行原来的程序。 4. DMA方式DREQHOLDHLDADACKCPUDMA控制器存储器I/O接口图8-3 DMA传送的一般过程指由DMA控制器来控制存储器和I/O 设备间的数据传送方式。 用DMA控制 器控制存储器和I/O设备间的数据传送 , 数据传输时CPU不占用总线。 数据 传送完全由硬件完成的,大大缩短了 数据传送的时间,提高了系统的处理 效率。返回本章目录8.2 中断微型计算机系统中,广泛地 采用了中断技术, 如BIOS中 断、

7、DOS中断、 中断控制器8259A管理的外部中断等。 8.2.1 8086/8088CPU的中断源中断是由CPU的内部原因或外部请求 而引发的。中断请求的来源称中断源。8086/8088CPU有256个中断源,中断 源根据来自CPU内部和外部分为两大类: 内部中断源和外部中断源8088/8086CPU 的中断源外部中断内部中断不可屏蔽中断NMI可屏蔽中断INTR除法错中断单步中断断点中断软中断INT n图8-4 8086/8088中断源1.外部中断外部中断是由来自CPU外部的 硬件电路产生的中断,又称硬 件中断。外部中断分不可屏蔽 中断NMI和可屏蔽中断INTR。指中断请求不能通过软件的方式对

8、 其屏蔽, 一旦出现NMI中断请求,CPU 必须立即响应。故对系统运行有重大 影响的中断请求信号定义为NMI中断。 微机中把系统板上的动态RAM奇偶校验 错、 电源电压下降严重等发出的的中 断请求信号作NMI中断。 不可屏蔽中断NMI 可屏蔽中断INTR可屏蔽中断是指该中断请求信号可 以通过软件的方式对其屏蔽。对于可 屏蔽中断请求,CPU是否响应,取决于 中断标志位IF的值。 当IF=1时,CPU 响应中断; 当IF=0时,CPU不响应中 断。IF的值可通过指令设置: 指令STI 使IF=1;指令CLI使IF=0。2.内部中断内部中断是由CPU在执行程 序时产生的中断, 又称软 件中断。 内部

9、中断不受IF 状态位的影响, 即: 不论 IF=0,还是IF=1, 都不影 响CPU对内部中断的响应。 除法错中断除数为0或商超出了寄存器所能表示的 范围时,就产生一个中断类型码为0的中断。例如: MOV DX,0002HMOV AX,3578HMOV BX,2DIV BX;被除数;除数;商超出AX的存储范围 单步中断在DEBUG调试程序时,用T命令调试 程序,每执行一条指令,就显示当前 各个寄存器的值、每个状态标志位的 状态及下一条要执行的指令。 T命令 就是利用了单步中断。单步中断是在TF=1时,CPU每执行一 条指令自动产生一个类型码为1的中断 。 断点中断断点中断是类型码为3的中断 ,

10、 与单步中断一样,主要用于程 序调试。程序中设置断点,就是 插入1条断点中断指令INT 3,程 序执行到断点时便产生中断,显 示出当前各个寄存器的值、每个 状态标志位的状态及下一条要执 行的指令。 溢出中断溢出中断是类型码为4的中断。若 程序执行某条指令时, 使OF=1, 则自动插入一条INT 4指令(中断 溢出指令),会产生溢出中断。 软中断INT n指令格式:INT n其中,n称为中断类型码,n的取值 范围是0FFH或0255。CPU在 执行INT n指令时,就会产生1个软中 断,去调用中断处理程序。3.中断优先级8086/8088CPU各个中断源的优先 级按由高到低分配:除法错中断、断点

11、中断、溢出中 断、软中断的优先级最高;NMI的 优先级次之;INTR的优先级比NMI 的优先级低;单步中断的优先级最 低。 8.2.2 中断向量表中断类型码代表1个中断源,它相当 于在CPU和中断处理程序之间建立的一 座桥梁,CPU根据中断类型码在中断向 量表中获取要执行的中断处理程序的 入口地址,转去执行中断处理程序。1. 中断类型码8086/8088CPU中断类型码分配: 除法错中断、单步中断、断点中断、溢出中断的中断类型码依次为0、1、3、4 不可屏蔽中断NMI的中断类型码为2 可屏蔽中断INTR的中断类型码,通常由中断控制器8259A提供 软中断指令INT n的中断类型码就是n2.中断

12、向量表CPU响应中断,获取中断类型码 ,根据中断类型码取得中断处理程 序的入口地址,转去执行中断处理 程序。对此,CPU在00000H003FFH 共1KB的内存储区中, 建立了中断 类型码与对应的中断处理程序入口 地址之间的对应表格,称为中断向 量表。图 8-5 中断向量表类型0中断处理 程序的入口地址类型1中断处理 程序的入口地址类型2中断处理 程序的入口地址类型255中断处理 程序的入口地址00000H00004H00008H003FCH中断向量表可存放了256个中断源 的中断处理程序的入口地址,每个入 口地址占4个字节单元,其中低地址的 2个字节单元里存放入口地址的偏移地 址,高地址的

13、2个字节单元里存放入口 地址的段地址。 所以,中断向量表总 共占用4*256=1024字节,即1KB存储空 间。举例: 若某中断源的中断类型码是60H, 则该中断源对应的中断处理程序的入口 地址需要存放在60H*4=00180H开始的4个 连续字节单元中,即在00180H字单元中 存放偏移地址 ,在00182H字单元中存放 段地址。 CPU执行中断指令INT 60H时, 自动将00180H字单元中的偏移地址取出 送给IP, 将00182H字单元中的段地址取 出送给CS,转去执行中断处理程序。3.中断向量表的初始化 通过编程直接填写中断 向量表。 通过25H号系统功能调 用间接填写中断向量表。

14、编程填写中断向量表假如: 软中断处理程序INT60的中断类型码是60H,则下 列程序段对中断向量表的初始化。PUSH DS ;保存数据段的段地址MOV AX,0MOV DS,AX ;DS0000HMOV SI,0180H ;SI60H*4MOV AX,OFFSET INT60MOV SI,AX ;存INT60H的偏移地址MOV AX,SEG INT60MOV SI+2,AX ;存INT60H的段 地址POP DS ;恢复数据段的 段地址 通过25H号系统功能调用间接填写中断向量表入口参数:AH = 25HAL = 中断类型码DS: DX = 中断处理程序的入口地址出口参数: 无功能: 将DS:

15、DX中存放的中断处理程序的入口 地址,存入到中断向量表中与AL指定的中断类型码 相对应的存储区域。假如: 若软中断处理程序INT60的中断的中断类 型码是60H,用系统功能调用填写中断向量表:PUSH DS ;保存数据段基地址MOV AX,0MOV DS,AXMOV AX,SEG INT60MOV DS,AX ;DS代码段地址MOV DX,OFFSET INT60 ;DX偏移地址MOV AH,25H ;AH功能号MOV AL,60H ;AL类型码INT 21HPOP DS ;恢复数据段的段地址8.2.3 软中断程序设计1.软中断程序调用指令INT与返回指令IRET格式: INT n功能: 调用中断类型码n所对应的中断处理程序,指令INT n的执行过程: a)保护现场:(FLAGS)、(CS)、(IP)依 次入栈; b)清除IF、TF,使IF=0、TF=0,禁止外部中 断和单步中断; c)IP (n*4), CS (n*4+2)。 中断调用指令INT(IP) (CS) (FLAGS) *栈底图8-6 入栈后信息原堆栈顶SP格式: IRET功能: 将中断调用指令INT入栈时保存的信 息出栈,以恢复中断调用之前的现场。指令IRET的执行过程: a) IP (IP)

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

当前位置:首页 > 高等教育 > 其它相关文档

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