安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 第八章输入输出程序设计 输入输出功能是计算机的重要组成部分,是人 机交互功能的主要承担者。在早期的计算机系统中 通常把输入输出设备或功能作为次要的部分,而把 cPU作为主要研究对象。但现在随着输入输出设备 的日益丰富、功能要求越来越复杂,输入輸出部分 在整个计算机系统中的地位也得到了进一步提高。 2021/22
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 1 输入输出功能是计算机的重要组成部分,是人— 机交互功能的主要承担者。在早期的计算机系统中, 通常把输入输出设备或功能作为次要的部分,而把 CPU作为主要研究对象。但现在随着输入输出设备 的日益丰富、功能要求越来越复杂,输入输出部分 在整个计算机系统中的地位也得到了进一步提高。 第八章 输入输出程序设计
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 输入输出设备是计算机系统的重要的组成部分 没有输入输出设备,计算机就得不到要解决问题的 初始信息,处理的结果信息也不可能被送出,这样 的计算机不能完成任何工作。 计算机系统是通过硬件接口(或控制器)以及输 出输出程序对外部设备实现处理和控制的。而汇编 语言能直接控制硬件,因此就成为编写输入翰岀程 序的最有效的语言。 2021/22 2
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 2 输入输出设备是计算机系统的重要的组成部分, 没有输入输出设备,计算机就得不到要解决问题的 初始信息,处理的结果信息也不可能被送出,这样 的计算机不能完成任何工作。 计算机系统是通过硬件接口(或控制器 )以及输 出输出程序对外部设备实现处理和控制的。而汇编 语言能直接控制硬件,因此就成为编写输入输出程 序的最有效的语言
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 8.1I/O设备的数据传送方式 8.11CPU与外设 每种输入输出设备都是通过硬件接口或控制器与CPU 相连接,这些接口都能支持输入输出指令NoUT与外部 设备交换信息,这些信息包括控制、状态和数据三种不 同性质的信息。 地址总线AB 存储器 vO 接 ●●● 接 出设 CPU 「数据总线DB [控制总线CB 2021/22
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 3 8.1 I/O设备的数据传送方式 每种输入输出设备都是通过硬件接口或控制器与CPU 相连接,这些接口都能支持输入输出指令IN,OUT与外部 设备交换信息,这些信息包括控制、状态和数据三种不 同性质的信息。 存 储 器 I/O 接 口 输 入 设 备 I/O 接 口 数据总线 DB 控制总线 CB 地址总线 AB 输 出 设 CPU 备 8.1.1 CPU与外设
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 控制信息:是由CPU发送给外部设备的,命令其处于 某种方式或执行某操澡作 状态信息:从接口输入的状态信息表示设备当前 的状态。 数据信息:则是O设备和CPU真正要交换的信息。 数据信息可分为三种类型:数字量、模拟量和开关量。 这些信息可以是并行的,也可以是串行的。 CPU与外设之间的数据传送方式有:程序直接控 制O方式、中断方式和DMA方式。由于DMA方式 是由DMA控制器实现其传送功能的,所以在这里只做 简单介绍。主要讲解前两种方式。 2021/22
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 4 控制信息:是由CPU发送给外部设备的,命令其处于 某种方式或执行某种操作。 状态信息:从接口输入的状态信息表示I/O设备当前 的状态。 数据信息:则是I/O设备和CPU真正要交换的信息。 数据信息可分为三种类型:数字量、模拟量和开关量。 这些信息可以是并行的,也可以是串行的。 CPU与外设之间的数据传送方式有:程序直接控 制 I/O方式、中断方式 和 DMA方式。由于DMA方式 是由DMA控制器实现其传送功能的,所以在这里只做 简单介绍。主要讲解前两种方式
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 812直接存储器存取方式(DMA)方式 当外设的速度相对很高,且一次传送的数据量 很大时,中断方式的效率就很低。例如,对磁盘 的读写操作,一般的文件都有几十K,几百K,甚 至几兆,通过DMA方式利用专门的接口控制电路, 在存储器与高速的外设之间进行大量的数据交换, 而不需要cPU的参与。 DMA控制器一DMAC,除了具有一般接口的特点 外,CPU可以通过对DMAC相应端口的读/写操作来 控制DMA的工作方式;DMAC在得到总线控制权后, 能够像CPU一样提供相应的控制信号来控制系统总 线,从而实现外设与内存之间高速大量的数据传 输。一般接口电路不具备控制总线的能力。 2021/22
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 5 8.1.2 直接存储器存取方式(DMA)方式 当外设的速度相对很高,且一次传送的数据量 很大时,中断方式的效率就很低。例如,对磁盘 的读写操作,一般的文件都有几十K,几百K,甚 至几兆,通过DMA方式利用专门的接口控制电路, 在存储器与高速的外设之间进行大量的数据交换, 而不需要CPU的参与。 DMA控制器-DMAC,除了具有一般接口的特点 外,CPU可以通过对DMAC相应端口的读/写操作来 控制DMA的工作方式;DMAC在得到总线控制权后, 能够像CPU一样提供相应的控制信号来控制系统总 线,从而实现外设与内存之间高速大量的数据传 输。一般接口电路不具备控制总线的能力
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 DMA 请求 HOLD DMA 存储器 外部设 DMA 备 响应 控制器 HLDA 2021/22
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 6 存 储 器 外 部 设 备 C P U DMA 请求 DMA 响应 HOLD HLDA DMA 控 制 器
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 8.2程序直接控制IO方式 8.2.1I/O接口基本结构及编址方式 关于O“接口”与“端口 IO接口与CPU之间传送的信息有数据、状态和控制信号等3大 类。每个接口内部都包含有一启教量的寄存鞶(一般包括数 据寄存器、状态寄存器和控制寄存器),用来存放三种不同 信息。为了区分不同的寄存器(REG),需要给每个REG分 配一个地址号,这就类似于给內存单元编址一样。 O接口内部可寻址的REG又称为端口。按接受和传送的信息有 分为数据端口(双向,输入缓冲,输出锁存),状态端口 般只读),控制端口(一般只写)。CPU对外设工作方 式的控制和信息的交换最终部归结为CPU通过 IN/OUT指令 对各个可寻址端口的读写操作
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 7 8.2 程序直接控制I/O方式 • 关于I/O“接口”与“端口” I/O接口与CPU之间传送的信息有数据、状态和控制信号等3大 类。每个接口内部都包含有一定数量的寄存器(一般包括数 据寄存器、状态寄存器和控制寄存器),用来存放三种不同 信息。为了区分不同的寄存器(REG),需要给每个REG分 配一个地址号,这就类似于给内存单元编址一样。 I/O接口内部可寻址的REG又称为端口。按接受和传送的信息有 分为数据端口(双向,输入缓冲,输出锁存),状态端口 (一般只读),控制端口(一般只写)。CPU对外设工作方 式的控制和信息的交换最终都归结为CPU通过IN/OUT指令 对各个可寻址端口的读写操作。 8.2.1 I/O接口基本结构及编址方式
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 J/o接口编址方式 (1)统一编址:存储器(内存)与/o端口的編址占 用同一个地址空间。特点是所有对内存操作的指令 对o端口同样有效,指令丰富,但会损失一部分 的内存空间。 (2)独立编址:内存与o端口对应不同的地址空间。 对o端口有专门的令。缺点是对/Q端口操作的 指令不及统一编址时丰富(例如,8086/8088中对 J/o端口就只有最基本的输入输出指令),但能最 大程度地满足存储空间的寻址范围。 2021/22
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 8 (1)统一编址:存储器(内存)与I/O端口的编址占 用同一个地址空间。特点是所有对内存操作的指令 对I/O端口同样有效,指令丰富,但会损失一部分 的内存空间。 (2)独立编址:内存与I/O端口对应不同的地址空间。 对I/O端口有专门的指令。缺点是对I/O端口操作的 指令不及统一编址时丰富(例如,8086/8088中对 I/O端口就只有最基本的输入输出指令),但能最 大程度地满足存储空间的寻址范围。 I/O接口编址方式
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 内存空间 内存空间 FFFFFH FFFFFH O空间 供O接 口使用 FFFH 00000H 00000H 0000H (a)存储器映射方式示意图 (b)IO映射方式示意图 图图)映射方式和存储器映射方式的示意图 2021/22
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 9 (a)存储器映射方式示意图 (b)I/O 映射方式示意图 图 6-1 I/O 映射方式和存储器映射方式的示意图 I/O 空间 0000H FFFFH 00000H 内存空间 FFFFFH 1M 00000H 供 I/O 接 口使用 内存空间 FFFFFH 图
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 I/Oo端口地址 I/o端口是cPU与输入输出设备的交换数据的场所,通过o端 口,处理机可以接受从输入设备输入的信息;也可向输出设备 发送信息。在计算机系统中,为了区分各类不同的o端口, 就用不同的数字给它们进行编号,这种对o端口的编号就称 为o端口地址。按照毎次可交换一个字节数据的端口称为字 节端口,每次可交换一个字数据的端口称为字端口。 在nte公司的cPU家族中,Wo端口的地址空间可达64K,即 可有65536个字节端口,或32768个字端口。这些地址不是内 存单元地址的一部分,不能普通的访问内存指令来读取其信息, 而要用专门的o指令才能访问它们。虽然cPU提供了很大的 Jo地址空间,但目前大多数微机所用的端口地址都在0-3FFH 范围之内,其所用的O地址空间只占整个O地址空间的很小 部分。表8.1列举了几个重要的o端口地址。 2021/22
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 10 I/O端口地址 I/O端口是CPU与输入输出设备的交换数据的场所,通过I/O端 口,处理机可以接受从输入设备输入的信息;也可向输出设备 发送信息。在计算机系统中,为了区分各类不同的I/O端口, 就用不同的数字给它们进行编号,这种对I/O端口的编号就称 为I/O端口地址。按照每次可交换一个字节数据的端口称为字 节端口,每次可交换一个字数据的端口称为字端口。 在Intel公司的CPU家族中,I/O端口的地址空间可达64K,即 可有65536个字节端口,或32768个字端口。这些地址不是内 存单元地址的一部分,不能普通的访问内存指令来读取其信息, 而要用专门的I/O指令才能访问它们。虽然CPU提供了很大的 I/O地址空间,但目前大多数微机所用的端口地址都在0~3FFH 范围之内,其所用的I/O地址空间只占整个I/O地址空间的很小 部分。表8.1列举了几个重要的I/O端口地址