文档介绍:第4章输入输出技术
教学重点
8088CPU外设接口编址方式
无条件传送方式
查询传送方式
中断工作过程
控制总线CB
地址总线AB
I/O接口电路
数据
控制
状态
数据总线DB
系统
总线
(或CPU )
外设
控制寄存器
状态寄存器
数据寄存器
端口泛指I/O地址,通常对应接口电路的寄存器
一个接口电路可以具有多个I/O端口(寄存器),每个端口用来保存和交换不同的信息(每个接口电路通常只占用几个I/O地址)
数据寄存器、状态寄存器和控制寄存器占有的I/O地址常依次被称为数据端口、状态端口和控制端口,用于保存数据、状态和控制信息
输入、输出端口可以是同一个I/O地址
I/O地址的译码方法与存储器地址的译码方法类似
三. 8088/8086的输入输出指令( AL/Ax和I/O端口间数据传送)
输入指令
(IN:将外设数据传送给CPU内的AL/AX)
IN AL,i8 ;字节输入
IN AL,DX ;字节输入
IN AX,i8 ;字输入
IN AX,DX ;字输入
输出指令
(OUT:将CPU内的AL/AX数据传送给外设)
OUT i8,AL ;字节输出
OUT DX,AL ;字节输出
OUT i8,AX ;字输出
OUT DX,AX ;字输出
演示
演示
8088/8086的I/O端口
8088只能通过输入输出指令与外设进行数据交换;呈现给程序员的外设是端口(Port),即I/O地址
8086用于寻址外设端口的地址线为16条,端口最多为216=65536(64K)个,端口号为0000H ~ FFFFH
每个端口用于传送一个字节的外设数据
80x86采用I/O端口独立编址
IN指令实例(从20H端口输入一个字)
;方法1:字量输入
in ax,20h
;方法2:字量输入
mov dx,20h
in ax,dx
OUT指令实例(向300H端口输出一个字节45H)
;唯一的方法:字节量输出
mov al,45H
mov dx,300h
out dx,al
输入输出的基本方法
在微型计算机系统中,主要的输入输出方法有以下4种:
无条件传送
查询方式
中断方式
DMA (直接存贮器存取)方式
程序控制
输入输出
传送请求由外设向DMA控制器(DMAC)提出,后者向CPU申请总线,最后DMAC利用系统总线来完成外设和存储器间的数据传送
无条件传送方式
在CPU与慢速变化的外设交换数据时,可以认为外设总是处于“就绪”状态,随时可以进行数据传送,这就是无条件传送
适合于简单设备,如LED数码管、按键或按纽等
无条件传送的接口和操作均十分简单
这种传送有前提:外设必须随时就绪
无条件传送方式
例: 外设-开关k
输入接口,接口地址FFF7H
读接口状态D0
D0=1 开关k打开
=0 k闭合
MOV DX,0FFF7H
IN AL,DX ;AL的D0
K
查询传送方式
CPU需要先了解(查询)外设的工作状态,然后在外设可以交换信息的情况下(就绪)实现数据输入或输出
对多个外设的情况,则CPU按一定顺序依次查询(轮询)。先查询的外设将优先进行数据交换
查询传送的特点是:工作可靠,适用面宽,但传送效率低
就绪?
就绪:满,空、闲、不忙
就绪(Ready)
在输入场合
“就绪”说明输入接口已准备好送往CPU的数据,正等着CPU来读取
该状态也可用接口中数据缓冲器已“满”来描述
在输出场合
“就绪”说明输出接口已做好准备,等待接收CPU要输出的数据
该状态也可用接口数据缓冲器已“空”、或者用接口(外设)“闲”或不“忙(Busy)”来描述
返回
就绪:满,空、闲、不忙