汇编语言 基本输入输出接口技术共23页文档
《汇编语言程序设计》第8章输入、输出与中断

输入输出程序设计示例
读取键盘输入
通过IN指令读取键盘控制器端 口的数据,解析按键信息。
控制LED显示
通过OUT指令向LED控制端口 发送数据,控制LED的亮灭和闪 烁。
串行通信程序设计
通过IN和OUT指令实现串行数 据的发送和接收,需要设置串 行通信参数和端口地址。
并行通信程序设计
通过IN和OUT指令实现并行数 据的传输,需要设置并行通信
改进方向
进一步加强汇编语言编程和调试技能的学习和实践,提高代码质量和效率。同时,探索更多的输入输出和中断应 用场景,拓展知识面和应用能力。
THANKS FOR WATCHING
感谢您的观看
CPU在执行输入输出指令时,可能需要等待外部设备的响应,此时CPU 可以转而执行其他任务,直到收到外部设备的中断请求后再继续执行输 入输出操作。
02 输入输出指令及编程方法
输入输出指令介绍
1 2
IN指令
从端口读取数据到累加器中,可用于读取外设状 态或数据。
OUT指令
将累加器中的数据输出到端口,可用于控制外设 或发送数据。
04 输入输出与中断控制芯片 介绍
典型输入输出控制芯片
01
02
03
8255芯片
具有三个8位并行I/O端口, 可通过编程控制各端口的 工作模式和数据传输方向。
8253芯片
可编程定时/计数器,可生 成定时中断或计数中断, 常用于控制外部设备的定 时操作。
串行通信接口芯片
如8250等,实现串行数据 的传输和控制,常用于与 其他设备的串行通信。
3
端口寻址方式
直接寻址和间接寻址,直接寻址指定端口地址, 间接寻址通过DX寄存器间接指定端口地址。
汇编语言_接口技术

第二章8086微处理器一、8086/8088的内部结构8086/8088 是Intel 公司于1978年6月推出的16 位微处理器,它们的主要特点是:数据线为16 位,可进行8 位(字节)和16 位(字)运算;地址线为20 位,可寻址1MB 存储空间;时钟频率为5~8 MHz。
内部结构由执行单元EU和总线接口单元BIU两部分构成,其内部结构框图如图2—1所示。
2.总线接口单元(BIU)BIU包括4个16位段寄存器(CS、DS、ES、SS)、1个16位指令指针(IP)、1个地址加法器、1个6字节(8088为4字节)的指令队列和总线控制电路,它负责从存储器中取指令并存放在指令队列中供CPU执行。
在执行指令过程中,使用的操作数地址由段基址和偏移量组成,其中16位偏移量先由EU计算得出,再由BIU 将其与段基址(段寄存器的内容)合在一起形成20位物理地址。
BIU的功能是实现CPU与内存的数据交换,并可根据EU的请求与I/O接口电路交换数据。
二、8086的内部寄存器组8086CPU的寄存器结构如右图所示,它包含13个16位的寄存器和1个16位的状态标志寄存器。
1.通用寄存器作用:操作数据可直接存放在通用寄存器中,可减少访问存储器的次数,使用寄存器的指令长度也较短。
这样,即提高了数据处理速度,也减少了指令存放的内存空间。
分类:通用寄存器是指EU中的4个16位寄存器:AX、BX、CX和DX。
一般用来存放16位的数据,它又可以分为高字节H和低字节L两组,用以存放8位数据。
通用寄存器多数被用在算术逻辑运算指令中,有些指令中,则有隐含的特定的用途,如AX在字乘字除运算中规定存放被乘数和被除数;CX在数据串操作中用来存放循环次数等等,这些内容在讲解第三章的指令系统的过程中都会涉及到。
2.专用寄存器专用寄存器包含4个16位寄存器。
其中SP用来指示位于当前堆栈段中数据的偏移地址,BP一般用来存放访问内存时的基地址,SP和BP称为指针寄存器;SI和DI用来存放当前数据段中数据的偏移地址,称为变址寄存器。
汇编语言程序设计第五章 接口技术

Intel系列微机系统仅支持I/O独立编址方式。
3. 8086/8088的I/O端口访问
I/O端口地址空间:8086用于寻址外设端口的地址线为16条, 端口最多64K个,端口号为0000H ~ FFFFH。
IBM-PC/XT机在制造中只使用A9~A0 10位地址来表示I/O空间,因 此其I/O端口的地址为000H~3FFH,共1 KB。
个时钟周期采样中断请求输入引脚
三. DMA方式
DMA(Direct Memory Access)方式:是在外部设备和存储 器之间开辟直接的数据传送通路,数据传送不是靠执行I/O指 令,数据不经过CPU内的任何寄存器,也就不破坏任何寄存 器原来的内容,而是在存储器和外部设备之间的通路上直接 传送数据。这种I/O方式的实现主要是靠硬件(DMA控制器) 实现的。
就绪
读状态
N 就绪? Y
数据交换
二. 中断控制方式
CPU在执行程序 中,被内部或外 部的事件所打断, 转去执行一段预 先安排好的中断 服务程序;服务 结束后,又返回 原来的断点,继 续执行原来的程 序
主程序
中断请求 断点
继续执行
中断服务程序
对外设 进行处理
返回断点
中断传送与接口
中断传送是一种效率更高的程序传送方式 中断服务程序是预先设计好的 中断请求是外设随机向CPU提出的 CPU对请求的检测是有规律的:一般是在每条指令的最后一
FFFFF
优点:
对I/O端口的访问命令与对存储器单元访问相同,
不必使用专用I/O指令;
存储器
外设数目或I/O寄存器数几乎不受限制。 系统读写控制逻辑较简单。
空间
缺点:
I/O端口要占去部分存储器地址空间。 程序不易阅读。
第七章 输入输出接口技术

天津工业大学
方式1下A,B口均为输入时的信号定义 (p312)
8 PORT A PORT B 8
INTE A INTE PC4
STB A IBF A
B
PC2
STB B IBF B
PC5
PC1
PC3
INTRA
PC0
INTRB
PC6,7
I/O 2
天津工业大学
M ODE 1:
STR OBE D I NPU T
天津工业大学
• 方式0 • 方式1 • 方式2 三种工作方式,均可以由编程来确定,即 由编程送入的控制字来选择。
天津工业大学
• 方式 0:基本输入/输出方式,此方式适用于无 条件传送数据。如读出一组开关状态,或控制 指示灯等。 • CPU可以随时读入开关状态,或把一组数据送 到指示灯显示。不需要选通、状态和中断等信 号。在此工作状态下,每一个端口都可以设置 为输入或输出。
天津工业大学
(3)数据端口
• 有三个8位数据端口,为A口,B口,C口。 • 在内部可以分为两组。
天津工业大学
8255A的PC口的功能 ① 可独立使用(方式0)与外设连接 ② 可以拆成两部分 A组 高四位 B组 低四位 联络信号 握手信号
③ 可以工作于位控工作方式,单独使用某一根 I/O线 对外设进行控制,例如灯的亮灭,电机 的启停等 ④ 可以对8255做中断控制 ⑤ 可以做8255的状态字
PC2-0
天津工业大学
MODE 2 WR OBF
OU T
B1-DIRECTIONAL
BUS
INTR ACK STB
IN
IBF PA7-PA0 RD
CP U DA TA BUS DA TA FRO M PE RIP HER AL TO 825 5 DA TA FRO M 82 55 TO PER IPH ERA L
微机原理与接口技术-基本输入输出接口技术 (2)可编辑全文

四、I/O处理机控制方式
尽管DMA方式优点比较突出,但在DMA进行传 输之前,对DMA的初始操作、对数据的运算和处理 等都需要处理器事先干预。为了让处理器彻底摆脱管 理和控制I/O设备的负担,引入了I/O处理机控制方式。 这种方式下,由专用I/O协处理器负责I/O操作和处理。
6.3 I/O接口的读写技术
输出的一种方式。
特点:简单、经济,但可靠性差。
2.条件传送方式
含义:首先查询外设状态,满足条件时才进
行数据的传送,因此也叫查询传送方式。
特点:简单、可靠性高,但CPU效率低。 开始
输入状态信息
准备输出数据
输入
N READY=1?
Y 输入数据
后续处理
输出
读状态口的状态
Y
BUSY=1?
N
输出数据
二、中断控制方式
WRA13~A0 CS
OE D15~D8 16K个I/O
WE A13~A0 CS
OE D7~D0 16K个I/O
WEA13~A0 CS
64位I/O组织 -基于Pentium~ Core2
BE7 BE6 BE5 BE4 A15~A3 IO W C
IORC D63~D0
A15~A3 BE3 BE2 BE1 BE0
含义:在满足传输条件时,外设向CPU发请求传输
的中断信号,CPU接收请求后进入服务程序,在中断 服务程序中进行输入输出操作。
特点:无需查询等待,CPU利用率大大提高。 不足:中断控制方式仍需要一系列本与输入输出无
关的操作(如压栈保护等),因此对于高速I/O设备 效率仍不算快。
三、DMA控制方式
位地顺序传送的一种通信方式。 要点:按位传输,同一时刻仅传送一位。 特点:
汇编语言第8章输入输出接口

(1) I/O接口的基本概念 (2) I/O控制方式 (3) DMA接口技术 (4) 可编程DMA控制器8237
8.1 I/O接口概述
8.1.1 I/O接口的基本功能
(1) 数据缓冲 (2) 提供联络信息 (3) 信号与信息格式的转换 (4) 设备选择 (5) 中断管理 (6) 可编程功能
IOW
图8.4 片选信号的产生
8.2 I/O控制方式
主机与外围设备之间的数据传送控制方式(即I/O控制 方式)主要有三种:
程序控制方式、中断控制方式和直接存储器存取 (DMA)方式。
8.2.1 程序控制方式
程序控制方式是指在程序控制下进行的数据传送方式。 它又分为无条件传送和程序查询传送两种。
地址空间 200~20FH 210~217H 218~2F7H 2F8~2FFH 300~31FH 320~32FH 330~377H 378~37FH
器件/接口适配器 地址空间
游戏卡
380~38FH
扩充部件
390~3AFH
未用
3B0~3BFH
异步通信卡(COM2) 3C0~3CFH
未用
3D0~3DFH
(5) DMA控制器发出存储器写信号MEMW,将数据传送 到由地址总线上的地址所指向的内存单元;
(6) DMA控制器放弃对总线的控制权;
(7) 地址寄存器加1;
(8) 字节计数寄存器减1;
(9) 如果字节计数寄存器的值不为零,则返回第一步,否 则结束。
第8章 作业
8.1 8.2 8.3 8.5 8.6 8.7 8.11
硬盘卡
3E0~3EFH
未用
3F0~3F7H
打印卡
3F8~3FFH
汇编输入输出与接口技术 8255

26
例1. 简单输入接口设计
2.检测一个开关的状态。若开关为闭合(0)状态,TEMP 单元为1;若开关为断开(1)状态,TEMP单元为0。(设端 口地址仅为380H)
硬件电路: 控制程序: TEMP DB 0
MOV DX,380H IN AL,DX AND AL,80H JZ ON MOV TEMP,0 JMP BAK MOV TEMP,1 ret
完成全部接口 控制操作
协调CPU与外设动作
匹配速度
3
一. 接口的基本概念
3.接口控制方式
①查询方式
中央处理器在数据传送之前通过接口的状态设置存 储电路询问外设,待外设允许传送数据后才传送数据。 CPU需要完成以下操作: CPU向接口发出传送命令,输入数据或输出数据; 中央处理器查询外设是否允许传送。 在查询方式下,中央处理器需要花费较多的时间去不 断地“询问” 外设,外设的接口电路处于被动状态。
端口地址译码部分
PC机的I/O端口地址译码仅使用了地址总线的低 10位,即只有地址线A9~A0用于I/O地址译码。
14
二. I/O指令和I/OAEN(地 址允许)参与译码。AEN=1, DMA控制三总线,进行DMA传 送; AEN=0开启译码器
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 1 1 1 0 0 0 0 0 0 X
10
二. I/O指令和I/O地址译码
1.输入输出指令 (1)输入指令IN
IN ACC,PORT ;直接端口寻址。端口地址由指令
中的8位立即数指定,所以直接寻址地址为00H~ 0FFH,256个端口
IN ACC,DX;间接端口寻址。端口地址由DX内容
确定,即端口地址>0FFH时,应使用DX间址
汇编语言7-输入输出与中断

第7章
当CPU执行输入指令时,指令译码使
IO/M 为高电平、读信号RD有效,同时 地址译码也有效,此时输入缓冲器被选 中,使外设数据进入数据总线,供CPU 读取。 如果此刻数据没有准备好,则操作就会 出错。
第7章
当CPU执行输出指令时,IO/M=1、WR
命令有效,同时地址译码也有效,此时 输出锁存器被选中,CPU送出的数据经 数据总线打入锁存器,供外设读取。
第7章
6.中断优先级和中断嵌套
中断优先级 :多个中断源同时请求中 断时,中断响应的先后次序。
中断嵌套 :中断服务程序执行过程中, 可以响应较高优先级中断请求,进 入较高级中断的中断服务程序,该 中断处理结束后,继续较低级别的 中断处理,称为中断嵌套 。
第7章
7.2.2 中断处理程序的设计
•
使用中断方式进行输入/输出时,用户需要编制两个程序模 块 :“主程序” 和“中断服务程序”
输入指令IN
将外设数据传送给CPU内的AL/AX
IN AL,i8 ;字节输入:AL←I/O端口(i8直接寻址)
IN AL,DX ;字节输入:AL←I/O端口(DX间接寻址)
IN AX,i8 ;字输入:AX←I/O端口(i8直接寻址) IN AX,DX ;字输入:AX←I/O端口(DX间接寻址)
第7章
CS IP
断点中断 非屏蔽中断 单步中断
IP
CS IP CS IP C S
专用的中断 (共5个)
类型2 类型1 类型0
除数为 0 中断
IP
第7章
5.中断处理过程 中断发生时,计算机中断机构自动完成如下操作 : (1)取中断类型号N (2)标志寄存器(FLAGS)内容入栈 (3)当前代码段寄存器(CS)内容入栈 (4)当前指令计数器(IP)内容入栈 (5)禁止外部中断和单步中断(TF=0,IF=0) (6)从中断向量表中取地址4×N的2字节内容 送IP,取地址4×N+2的2字节内容送CS (7)进入中断处理程序。
汇编语言程序设计课件 第4讲 基本输入输出程序

1. 2. 3. 4. 5. 键盘输入程序设计 显示输出程序设计 指令学习 本讲小结 作业
1、键盘输入程序
键盘输入方法
使用DOS功能调用 INT 21h AH=01 键盘输入并回显
从标准输入设备读取字符,带回显 带回显,字符的ASCII码存放在AL.如果键 带回显 盘缓冲区没有字符,将等待输入。
(见教材,检查结果位数的变化)
无符号数和带符号数指令不同
本讲小结
信息是如何输入的? 如何输出信息? 还有其它的输入输出方法吗? 寄存器合理使用的概念 其它你必须知道的概念
作业
1. 接收从键盘输入的一个数n(-10<n<10)。输出其 相反数(输入正数可以有+好,也可以无+号,输 出一定有符号)
例如 输入 1 输入 -6 输入 +3
乘法指令
MUL <8位寄存器> ; (AX) (AL)x<8位数据> MUL <16位寄存器> ; (DX,AX) (AX)x<16位数据>
键盘输入示例4(续)
程序 mov ah,1
int sub mov mov int sub mov mov mul mov int
21h al,30H ch,al ah,1 21h al,30h cl,al al,ch cl dl,al 20h
键盘输入示例1
接受键盘输入的字符保存在DL寄存器中 程序1 (带回显)
mov int mov int mov int mov int ah,1 21h dl,al 20h
程序2
(无回显)
ah入示例2
将键盘输入的一个一位数保存在DL寄存器中 程序1
输入和输出接口技术

3/22/2020
版权保留(C) 南京理工大学机械工程学院 王芳
15
查询式输入的接口电路
IOR AEN
数据
输入 装置
锁存器
选通 信号
光电隔离等 4) 对外设的控制和监测:提供命令译码和状态信息 5) 中断或DMA管理 6) 可编程功能
3/22/2020
版权保留(C) 南京理工大学机械工程学院 王芳
5
CPU与I/O设备之间的接口信息
CPU与I/O设备之间要传送的信息包括数据信息、状态信 息和控制信息。
1.数据信息: 1) 数字量:以二进制或ASCII码表示的数或字符; 2) 模拟量:如温度、压力、位移等; 3) 开关量:只有两个状态的量,如开关的和与断,阀门的 开与关等,只要用1位二进制数即可表示。
只有当G1端为高电平, G2A、G2B都为低电平时, 译码器才对来自输入端的C、 B、A的某一组合进行译码。
3/22/2020
版权保留(C) 南京理工大学机械工程学院 王芳
27
74LS138(三八译码器)逻辑功能表
控制端
输入端
输出端
G1 G2A G2B C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 0000 1 1 1 1 1 1 1
间
设有专门的 I/O指令对端口进行读写,
对内存操作的指令不能用于I/O端口
例 MOV [ 10H ], AL ;对内存操作
I/O
IN
10H, AL ;对端口操作
空 间
3/22/2020