配色: 字号:
第9章 输入输出程序设计
2022-10-30 | 阅:  转:  |  分享 
  
本章主要教学内容1.输入输出概念及寻址方式与指令。2.CPU与外设数据传送方式。1.理解掌握输入输出概念及寻址方式与指令;2.掌握CPU与外
设数据传送方式。本章主要教学目的及要求9.1 概述9.1.1 CPU与I/O设备间的接口信息 1.数据(Data)含义:CPU与I
/O设备传送的主体位数:8位、16位、或32位类型数字量以二进制形式表示的数据或以ASCII码表示的数或字符模拟量大量的现场信息开
关量两个状态的量2.状态信息(Status)含义:反映外设当前工作状态的信号类型输入输入设备的信息是否准备好输出输出设备是否有空3
.控制信息(Control)含义:控制输入输出装置启动或停止等典型的I/O接口9.1.2 典型的I/O接口9.1.3 输入输出的寻
址方式与指令 1.输入输出的寻址方式寻址方式存储器对应输入输出方式一个外设接口作为存储器的一个单元,一个外设端口占存储器的一个地址
端口寻址的输入输出方式CPU有专门的I/O指令,用地址来区分不同的外设优点:(1)指令多,使用方便;(2)内存和外设的地址分布图是
同一个;(3)不需要专门的输入输出指令。缺点:(1)外设占用了内存单元,使内存容量减少;(2)寻址的外设端口地址,比内存单元少得多
。 1.输入输出指令这组指令只限于使用累加器AX或AL与外部设备的端口传送信息(1)直接输入输出指令含义:将外设的端口数据直接通过
AX或AL寄存器进行输入输出操作类型IN指令格式:IN AL,PORT ;字节输入 IN AX,PORT ;字输入P
ORT是外设的端口编号,是一字节无符号数,只能取值00H~0FFH,有256个端口地址执行操作: 字节: AL←(P
ORT) 字: AX←(PORT+1),(PORT) OUT指令格式:OUT PORT,AL ;字节输出
OUT PORT,AX ;字输出执行操作: 字节: (PORT)←AL 字: (POR
T+1),(PORT)←AX(2)间接输入输出指令含义:在外设与累加器进行数据传送前,预先将端口地址送入DX寄存器类型IN指令格式
:IN AL,DX ;字节输入 IN AX,DX ;字输入DX为外设端口地址,范围可设置为0000H~0FFFFH,
允许有65536个端口地址执行操作: 字节: AL←(DX) 字: AX←(DX+1),(DX)
OUT指令格式:OUT DX,AL ;字节输出 OUT DX,AX ;字输出执行操作: 字节: (
DX)←AL 字: (DX+1),(DX)←AX【例9-1】MOV DX,07A8H OUT
DX,AL OUT指令执行前,DX=07A8H,(07A8H)=85H,AL=0C6HOUT指令执行后,(07A8H)=0C
6H,AL=0C6H,DX=07A8H 9.2 CPU与外设数据传送方式9.2.1 程序直接控制方式分类同步方式处理器对I/O端口
读写随时进行,不需等待某种条件的满足应用场合:在外部控制过程的各种动作时间是固定的,且条件已知的场合下才能够应用。优点:程序简单,
硬件和软件很省。查询方式CPU通过执行程序不断读取并测试外设的状态,如果外设数据端口处于就绪状态,则CPU与外设交换信息。应用场合
:适用于CPU和外设工作不同步的情况。查询传送方式的工作过程查询输入工作过程(1)从状态端口读入状态信息。(2)测试Ready位是
否为1,若不为1则转(1)操作,循环等待。(3)若为1,则执行输入指令读取数据,且使状态位清0。例:CHECK:IN AL ,ST
ATUS_PORT ;读状态端口 TEST AL ,80H ;检查数据准备就绪否(D7=
1?) JZ CHECK ;未就绪,重新读状态端口 IN AL,DA
TA_PORT ;已就绪,读取数据查询输出工作过程(1) 从状态端口读入状态信息。(2) 检查Busy位,若为1,则转
(a)操作,循环等待。(3) 若不为1,则从缓冲区取数据输出,且使状态位清0。例:CHECK:IN AL ,STATUS_PORT
;读状态端口 TEST AL ,80H ;检测输出装置忙否(D7=1?)
JNZ CHECK ;忙,转至读状态端口 MOV AL,[SI]
;设备空闲,读取待输出的数据 OUT DATA_PORT,AL ;输出数据至数据端口【例
9-2】编写两台计算机利用程序查询方式进行串口通讯的程序;输入子程序COM-IN PROC FAR ;查询读入数据
PUSH DX MOV DX,03FDHCOM-IN1:IN AL,DX TEST AL,01
JZ COM-IN1 ;未准备好,循环查询 MOV DX,03F8H;准备好,读入数据
IN AL,DX POP DX RETCOM-IN ENDP;输出子程序COM-OUT PROC
FAR PUSH DX PUSH AX MOV DX,03FDHCOM-OUT1
:IN AL,DX ;读入状态字 TEST AL,20H;第5位为1,寄存器空 JZ COM-
OUT1;寄存器不空,等待 POP AX ;寄存器空则输出数据 MOV DX,03F8H
OUT DX,AL POP DX RETCOM-OUT ENDP 9.2.2 程序中
断方式含义:当外设的输入数据准备好或接收数据的锁存器空时,便主动向CPU 发出中断请求,使CPU中断现行程序的执行,转去执
行为外设服务 的输入或输出程序。服务完毕后,CPU再继续执行原来的程序。特点: CPU与外设可以并行工作,减少了CPU的查
询等待时间【例9-3】中断传送方式的打印机程序。设数据块首址为DATA_BUF,指针为POINTPTR_MAIN PROC FA
R MOV AX,OFFSET DATA_BUF MOV [POINT],AX
MOV AX,SEG DATA_BUF MOV [POINT+2],AX CLI
MOV AX,OFFSET PRT_INT MOV [411],AX
MOV AX,SEG PRT_INT MOV [411+2],AX I
N AL,21H AND AL,7FH OUT 21H,AL MOV D
X,37AH MOV AL,08H OUT DX,AL CALL DELAY
MOV DX,37AH MOV AL,1CH OUT DX,AL
STI ┇;中断处理程序: PRT_INT PROC FAR PUSH A
X PUSH BX PUSH DX PUSH DS
LDS BX,POINT MOV AL,[BX] MOV DX,378
H OUT DX,AL MOV DX,37AH MOV AL,1DH
OUT DX,AL DEC AL
OUT DX,AL INC POINT SUB DATA_LEN,1
JNZ INT_END MOV AL,0CH OUT DX,AL INT_
END:MOV AL,20H OUT 20H,AL POP DS
POP DX POP BX POP AX IRET PR
T_INT ENDP 9.2.3 直接存储器存取(DMA)方式含义:不通过CPU直接对存储器进行访问应用场合:在主存储器与I/O设
备间进行高速交换批量数据基本思想:通过硬件控制实现主存与I/O设备间的直接数据传送,在传送过 程中无需CPU程序
干预。特点:(1)可在I/O设备与主存之间直接传送数据; (2)传送时,源与目的均直接由硬件逻辑指定; (3)
主存中要开辟相应的的数据缓冲区,指定数据块长; (4)一批数据传送结束,通过中断方式通知CPU进行后处理; (
5)CPU与I/O设备能并行工作,效率很高; (6)一般用于高速、批量数据的简单传送。完整的DMA工作过程(1)初始化:
完成各种程序准备。(2)DMA请求:当接口已准备好时,接口通过有关逻辑向DMA发请求信号。(3)DMA响应:CPU收到DMA请求,
在当前总线周期操作结束后,暂停对系统总 线控制,发出DMA应答信号,并将总线控制权交DMA控制器。(4)
DMA传送:DMA控制器接收到应答信号后,窃取总线控制权,完成一次DMA 传送。(5)结束处理:传送完数
据后,进行数据处理。9.2.4 通道传输方式含义:通过执行通道程序进行I/O操作的管理,为主机与I/O设备提供一种数据传
输通道。特点:有自己的通道处理程序,可以完成较复杂的I/O管理和预处理,从而在CPU 从繁重的I/O管理和预处理工作中解脱出来,提高系统效率。本章小结 本章主要介绍了CPU与外设进行传送的信息类型、I/O的寻址方式与指令和CPU与外设之间的数据传送方式。 CPU与外设间交换信息,通常要有数据、状态、及控制信号三类。 CPU寻址外设可以有两种方式:存储器对应输入输出方式和端口寻址的输入输出方式。 I/O设备与主机之间进行数据交换有四种方式:程序直接控制方式,程序中断方式,直接存储器访问(DMA)方式和通道传输方式。
献花(0)
+1
(本文系籽油荃面原创)