输入输出和中断程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

协处理器 硬盘控制器 游戏控制接口 3号并行口
3BCH – 3BEH 3C0H – 3CFH 3F0H – 3F7H 3F8H – 3FEH
1号并行口 EGA/VGA视频寄存器 软盘控制寄存器 1号串行口
9.1.2 I/O指令
对于I/O设备与内存独立编址的系统,有专门的I/O 指令实现I/O设备与系统的通信,存取端口寄存器,完成 输入输出.
Fra Baidu bibliotek
9.3.2 中断源及中断分类
引起中断的事件就称为中断源。 中断可分为内部中断和外部中断。
内部中断又称软件中断。内部中断的中断事件是
由系统内部产生的,如CPU运算时,商超出寄存器所表 示的范围,或程序中有软件中断指令等都是内部中断。
外部中断又称为硬件中断。外部中断是由外设控
制器等外部条件产生的中断,如某些设备出现故障,某 些I/O设备请求输入输出数据等.均可产生中断。
基本内容
输入输出指令 查询传送方式 中断概述 中断处理程序设计 BIOS功能调用
9.1 输入输出指令
I/O端口地址的分配 I/O指令 数据传送方式
9.1.1 I/O端口地址的分配
计算机系统通过接口与外围设备通信的,每个接口由 一组寄存器组成,为了存取这些寄存器中的数据,系统为 这些寄存器分配有专门的地址,即I/O端口地址。
输入指令
输出指令
输入指令
输入指令从一个输入端口读取一个字或字节, 传送至寄存器AL或AX中,有直接寻址和间接寻址 两种方式,直接寻址方式的端口地址是一个范围 0 – 255的立即数.间接寻址方式的端口地址在 DX 寄存器中,地址范围0-65535。
例:下面两条指令分别表示从端口26H读取一个字和 一个字节。
内部中断
主要有以下5种
(1)除法错中断
在执行除法指令时,如果商超过了寄存器所能表示的范围 或除数为0,则立即产生一个类型为0的中断。
(2)溢出中断
CPU在进行算术运算时,如发生溢出,则将溢出标志OF置1, 此时指令INTO中断发生溢出的算术操作,其中断类型号为4; 如果OF为0,INTO指令不产生中断。
在80X86微机中,I/O端口地址是一个连续的独立的地 址空间,范围从0000H – FFFFH,共64KB,因此允许设置 64K个8位端口或32K个16位端口.但实际中,由于系统的外 围设备数量有限,只使用这些I/O端口地址的很小一部分。 下表列出80X86微机的常见外设的I/O端口地址。
I/O地址范围 00H – 0FH 20H - 3FH 93H – 9FH C0H – 0EH
部分I/O端口地址分配情况
功能
I/O地址范围
8237A(DMA控制器)
2F8H – 2FEH
8259A(可编程控 制器)
DMA控制器
320H – 324H 372H - 377H
DMA接口
378H – 37AH
功能 2号串行口 硬盘适配器 软盘适配器 2号并行口
F0H – FFH 170H - 1F7H 200H – 20FH 278H – 27AH
IN AX,26H IN AL,26H
当端口地址超过255时,必须采用后两种间接寻址方式. 例:下面两条表示分别从端口2FAH和2FBH输入一个字节 送AL和AH.
MOV DX,2FAH IN AX,DX
输出指令
输出指令将AL中的一个字节或AX中的一个字输出 到指定端口,有直接寻址和间接寻址两种方式。直接寻 址方式的端口地址是0 – 255之间的立即数;间接寻址 方式的端口地址(范围0 – 65535)放在DX中。
微机系统中,有些简单的I/O设备在工作时,随时 都准备好向CPU传送数据或准备好接收CPU的输出数据。 也就是说,在工作中,系统不需要查询这些设备的状态, 可以直接使用指令IN或OUT实现数据交换。
这种方式实现简单,但在CPU与这些设备交换数 据时,数据交换与指令的执行必须同步,否则就可能 出错。
查询方式
9.2 查询传送方式
查询方式的基本思想是 :CPU主动地通过输入输出 指令查询指定I/O设备的当前状态,若设备准备就绪,则 立即与设备进行数据交换,否则循环查询。
因此,查询传送方式要求相应的I/O接口除了要有数 据寄存器外,还要有状态寄存器,有些I/O设备还要有控 制寄存器。
9.3 中断概述
中断的概念 中断源及中断分类 中断向量表 中断响应过程 中断优先级和中断嵌套 中断指令
9.3.1 中断的概 念
中断是一种使CPU中止正在执行的程序而转去处理 特殊事件的操作。具体说就是在CPU执行程序的过程中, 需要对外设进行输入输出操作,或由于某种事件发生, 强迫CPU暂停当前执行的程序,转去执行输入输出操作 或对该事件进行处理,当完成输入输出操作或处理事件 结束,CPU又返回到原来的程序,接着中止前的状态继 续执行。
I/O设备在收到响应信号后,开始
准备下一个数据的准备。
N
输入输出结束
中断方式 用中断方式传送数据,可提高CPU效率,并
对一些状态进行实时响应。
直接存储器存取方式
直接存储器存取方式适用于高速I/O设备与CPU之间的高 速数据交换。其工作过程如下:
(1)I/O设备向DMA控制器发出DMA传送请求; (2)DMA控制器向CPU发出HOLD信号,向CPU提出DMA请求; (3)CPU向DMA控制器发出响应信号,将总线控制权交与 DMA控制器; (4)DMA控制器控制总线并向I/O设备发出DMA应答信号; (5)DMA控制器分别通过地址总线和数据总线送出传输 数据的存储器地址和要传输的数据; (6)数据传送完毕,DMA控制器通过HOLD撤消对CPU的 DMA请求。
例:
OUT 8,AX
表示从AX寄存器输出一个字到8号端口。
例:
MOV AX,6F24H MOV DX,2FDH OUT DX,AX
表示将24H输出至端口2FDH,将6FH输出至端口2FEH。
9.1.3 数据传 送方式
无条件传送方式 查询方式 中断方式 直接存储器存取(DMA)方式
无条件传送方式
查询方式适用于与CPU不同 步的I/O设备。
查询方式的工作过程是:如
CPU要从 I/O设备接收数据,先查
开始
询I/O设备状态,看数据是否准备
好,如果没有准备好则继续查询; 读设备状态信息
如数据已准备好,CPU就从该设备 N 准备好
读取数据,之后,CPU向该I/O设备
Y
发送响应信号,表示数据已被接收。 输入或输出数据
相关文档
最新文档