1 / 60
文档名称:

IBM-PC汇编语言(⑧输入输出程序设计).ppt

格式:ppt   页数:60页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

IBM-PC汇编语言(⑧输入输出程序设计).ppt

上传人:经管专家 2013/11/27 文件大小:0 KB

下载得到文件列表

IBM-PC汇编语言(⑧输入输出程序设计).ppt

文档介绍

文档介绍:输入输出功能是计算机的重要组成部分,是人—机交互功能的主要承担者。在早期的计算机系统中,通常把输入输出设备或功能作为次要的部分,而把CPU作为主要研究对象。但现在随着输入输出设备的日益丰富、功能要求越来越复杂,输入输出部分在整个计算机系统中的地位也得到了进一步提高。
第八章输入输出程序设计
11/14/2017
1
输入输出设备是计算机系统的重要的组成部分,没有输入输出设备,计算机就得不到要解决问题的初始信息,处理的结果信息也不可能被送出,这样的计算机不能完成任何工作。
计算机系统是通过硬件接口(或控制器)以及输出输出程序对外部设备实现处理和控制的。而汇编语言能直接控制硬件,因此就成为编写输入输出程序的最有效的语言。
11/14/2017
2
I/O设备的数据传送方式
每种输入输出设备都是通过硬件接口或控制器与CPU相连接,这些接口都能支持输入输出指令IN,OUT与外部设备交换信息,这些信息包括控制、状态和数据三种不同性质的信息。



I/O






I/O


数据总线 DB
控制总线 CB
地址总线 AB




CPU
CPU与外设
11/14/2017
3
控制信息:是由CPU发送给外部设备的,命令其处于某种方式或执行某种操作。
状态信息:从接口输入的状态信息表示I/O设备当前的状态。
数据信息:则是I/O设备和CPU真正要交换的信息。数据信息可分为三种类型:数字量、模拟量和开关量。这些信息可以是并行的,也可以是串行的。
CPU与外设之间的数据传送方式有:程序直接控制 I/O方式、中断方式和 DMA方式。由于DMA方式是由DMA控制器实现其传送功能的,所以在这里只做简单介绍。主要讲解前两种方式。
11/14/2017
4
直接存储器存取方式(DMA)方式
当外设的速度相对很高,且一次传送的数据量很大时,中断方式的效率就很低。例如,对磁盘的读写操作,一般的文件都有几十K,几百K,甚至几兆,通过DMA方式利用专门的接口控制电路,在存储器与高速的外设之间进行大量的数据交换,而不需要CPU的参与。
DMA控制器-DMAC,除了具有一般接口的特点外,CPU可以通过对DMAC相应端口的读/写操作来控制DMA的工作方式;DMAC在得到总线控制权后,能够像CPU一样提供相应的控制信号来控制系统总线,从而实现外设与内存之间高速大量的数据传输。一般接口电路不具备控制总线的能力。
11/14/2017
5







C
P
U
DMA
请求
DMA
响应
HOLD
HLDA
DMA



11/14/2017
6
程序直接控制I/O方式
关于I/O“接口”与“端口”
I/O接口与CPU之间传送的信息有数据、状态和控制信号等3大类。每个接口内部都包含有一定数量的寄存器(一般包括数据寄存器、状态寄存器和控制寄存器),用来存放三种不同信息。为了区分不同的寄存器(REG),需要给每个REG分配一个地址号,这就类似于给内存单元编址一样。
I/O接口内部可寻址的REG又称为端口。按接受和传送的信息有分为数据端口(双向,输入缓冲,输出锁存),状态端口(一般只读),控制端口(一般只写)。CPU对外设工作方式的控制和信息的交换最终都归结为CPU通过IN/OUT指令对各个可寻址端口的读写操作。
I/O接口基本结构及编址方式
11/14/2017
7
(1)统一编址:存储器(内存)与I/O端口的编址占用同一个地址空间。特点是所有对内存操作的指令对I/O端口同样有效,指令丰富,但会损失一部分的内存空间。
(2)独立编址:内存与I/O端口对应不同的地址空间。对I/O端口有专门的指令。缺点是对I/O端口操作的指令不及统一编址时丰富(例如,8086/8088中对I/O端口就只有最基本的输入输出指令),但能最大程度地满足存储空间的寻址范围。
I/O接口编址方式
11/14/2017
8

11/14/2017
9
I/O端口地址
I/O端口是CPU与输入输出设备的交换数据的场所,通过I/O端口,处理机可以接受从输入设备输入的信息;也可向输出设备发送信息。在计算机系统中,为了区分各类不同的I/O端口,就用不同的数字给它们进行编号,这种对I/O端口的编号就称为I/O端口地址。按照每次可交换一个字节数据的端口称为字节端口,每次可交换一个字数据的端口称为字端口。
在Intel公司的CPU家族中,I/O端口的地址空间可达64K,即可有65536个字节端口,或32768个字端口。这些地址不是内存单元地址的一部分,不能普通的访问内存指令来读取其信息,而要用专门的I/O指