首页 > 其他分享 >微机原理与接口技术-第七章输入输出接口

微机原理与接口技术-第七章输入输出接口

时间:2023-10-22 21:25:03浏览次数:35  
标签:寻址 传送 接口技术 输入输出 接口 微机 指令 DOS 外设

目录

I/O接口概述

I/O接口的典型结构

  • 内部结构
    I/O接口电路实际是比较复杂的,但从应用角度,我们可以简化为3类可编程的寄存器,分别对应3类信号。
  1. 数据寄存器:保存处理器和外设之间交换的数据,可以分为数据输入寄存器和数据输出寄存器
  2. 状态寄存器:保存外设或其接口电路当前的工作状态信息
  3. 控制寄存器:保存处理器控制接口电路和外设操作的有关信息
  • 外部特性
    接口电路位于处理器和外设之间,起着桥梁作用
  1. 面向处理器一侧的信号与处理器总线或系统总线类似,有数据信号、地址信号、控制信号,以方便与处理器连接
  2. 面向外设一侧的信号与外设有关,以便与外设连接,由于外设种类太多,面向外设的一侧也各不相同。

基本功能

  1. 数据缓冲
  2. 信号变换

I/O端口的编址

独立编址

独立编址是将I/O端口单独编排地址,独立于存储器地址。

  • 优点
    1. 不占用存储器空间
    2. 专门的I/O指令比较清晰
  • 缺点:I/O指令功能简单,寻址方式没有存储器丰富
    80x86采用独立编址方式,只使用最低16位地址信号,对应64K个8位I/O端口,这64K地址空间补需要分段管理,只能使用指令输入指令IN,和输出指令OUT访问

统一编址

统一编址是将I/O端口和存储器地址统一编排,共享一个地址空间。

  • 优点
    1. 不需要设计专门的I/O指令和引脚
    2. 具有和存储器寻址一样丰富的寻址方式
  • 缺点
    1. 占用存储地址空间
    2. 通过指令不易辨认是I/O操作

输入输出指令

  • 输入指令IN AL/AX/EAX, i8/DX
  • 输出指令OUT i8/DX, AL/AX/EAX

I/O寻址方式

IA-32处理器的I/O寻址方式只有两种,直接寻址和通过DX间接寻址

  • 直接寻址:由I/O指令直接提供8位I/O地址,只能寻址最低256个I/O地址(00-FFH)
  • 间接寻址:用DX寄存器保存访问的I/O地址,能访问的地址(0000-FFFFH)

I/O数据传输量

IN/OUT指令只允许通过累加寄存器EAX与外设交换数据。8位I/O指令使用AL,16位I/O指令使用AX,32位I/O指令使用EAX

  • IN指令:外设数据进入处理器的AL/AX/EAX
  • OUT指令:处理器数据通过AL/AX/EAX送出
in al, 21h ;从地址为21H的I/O端口读一个字节数据到AL
mov dx, 300h ;DX指向300H端口
out dx, al ;将AL中的字节数据送到地址为300H(DX)的I/O端口

I/O保护

对于输入输出指令INOUTINSOUTS,还有中断标志设置指令CLISTI的执行涉及I/O端口,称之为I/O敏感指令。
标志寄存器EFLAGS有一个IOPL字段,表示程序具有的I/O特权级,只有程序的当前特权级低于或等于I/O特权级,I/O敏感指令才可以执行

16位DOS应用程序

DOS平台的源程序框架

; eg0700.asm in DOS
	include io16.inc	;包含16位输入输出文件
	.data 	;定义数据段代填
	...
	.code	;定义代码段
start:
	mov ax, @data
	mov ds, ax
	.....
	exit 0	;程序正常执行结束
	.....
	end start	;汇编结束

eg:输出Hello World

	include io16.inc
	.data
msg	byte 'Hello, Assembly!', 13, 10, 0	;定义要显示的字符串
	.code
start:
	mov ax,@data
	mov ds,ax
	mov eax, offset msg
	call dispmsg
	exit 0
	end start

DOS功能调用

DOS利用软件中断方式提供系统功能。IA-32处理器支持256个中断,每个中断用一个中断编号区别,即中断0~中断255号,中断调用指令是INT N,其中N表示调用的中断号。
DOS系统调用一般有如下四个步骤:

  1. 在AH寄存器中设置系统功能调用号
  2. 在指定寄存器中设置入口参数
  3. 用中断调用指令(INT N)执行功能调用
  4. 根据出口参数分析功能调用的执行情况
    1、3这两个步骤是一定需要的,2、4只是某些指令会用到
    DOS功能调用的终端号主要是21H,利用AH寄存器区别各种子功能
    image
    dispmsg子程序
dispmsg	proc
		push eax
		push ebx
		push edx
		mov ebx, eax
dispm1:	mov al, [ebx] ;取一个字符
		test al, al	;判断是否结尾(0)
		jz	dispmsg2
		mov ah, 2	;AH=2,显示一个字符的DOS功能
		mov dl, al	;设置入口参数
		int	21h		;调用DOS(INT 21H)系统功能
		inc ebx
		jmp	dispm1
dispm2: pop edx
		pop ebx
		pop eax
		ret
dispmsg	endp

无条件传送和查询传送

I/O接口的主要功能之一就是实现外设和主机的数据传送。数据传送可以通过处理器执行I/O指令完成,分为无条件传送、查询传送、中断传送。外设数据传送还可以以硬件为主加快传输速度,如直接存储器存取(DMA)、使用专门的I/O处理器

无条件传送

有些设备状态很少变化,可以认为总是处于就绪状态,随时可以进行数据传送,这就是无条件传送,有时也称为立即传送或同步传送
用于无条件传送的I/O接口电路十分简单,接口中只考虑数据缓冲,不考虑信号联络

三态缓冲器

三态指的是01高阻值
image

锁存器

在输出接口电路中,一般会安排一个锁存环节(锁存器),以便将数据总线的数据暂时锁存,使较慢的设备有足够的时间进行处理,此时处理器可以利用系统总线完成其他工作。

接口电路

标签:寻址,传送,接口技术,输入输出,接口,微机,指令,DOS,外设
From: https://www.cnblogs.com/cxy8/p/17780561.html

相关文章

  • 8.1 C++ 标准输入输出流
    C/C++语言是一种通用的编程语言,具有高效、灵活和可移植等特点。C语言主要用于系统编程,如操作系统、编译器、数据库等;C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统、图形用户界面、嵌入式系统等。C/C++语言具有很高的效率和控制能力,但也需要开发人员自行管理内存......
  • 8.1 C++ 标准输入输出流
    C/C++语言是一种通用的编程语言,具有高效、灵活和可移植等特点。C语言主要用于系统编程,如操作系统、编译器、数据库等;C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统、图形用户界面、嵌入式系统等。C/C++语言具有很高的效率和控制能力,但也需要开发人员自行管理内存......
  • Java IO 与 NIO:高效的输入输出操作探究
    引言输入输出(IO)是任何编程语言中的核心概念,而在Java中,IO操作更是应用程序成功运行的基石。随着计算机系统变得越来越复杂,对IO的要求也日益增加。在本文中,我们将探讨JavaIO和非阻塞IO(NIO)的重要性以及如何在Java中实现高效的输入输出操作。传统IO(阻塞IO)传统IO是大多数开发人员熟......
  • Mitsubishi 三菱FX5U与NZ2MFB1-32DT输入输出模块CC-Link通讯
    01先点参数,系统参数,设置主机型号; 02点击“以太网端口”,进入画面选择CC-LinkIEFBasic设置中的“网络配置设置”; 03将NZ2MFB1-32DT输入输出模块拖拽出配置与本站同一网段的IP; 04点击CC-LinkIEFBasic设置中的“刷新设置”; 05设置刷新地址; 06设程序编写; 最后将......
  • 微机原理笔记 - chap1 - 绪论
    Intel微处理器的发展1978年:8086/8088微处理器出现,首枚16位微处理器。微型计算机概述计算机加电以后,首先运行BIOS(BasicInputOutputSystem)系统,进行硬件的检查、初始化(加电时寄存器的内容是随机的)、给操作系统提供编程接口等。通过硬件驱动程序、BIOS/UEFI提供的编程......
  • 微机原理笔记 - chap2 - Intel单核/多核处理器
    单核处理器(8086/8088)8086/8088功能特性第一次将流水线思想引进微处理器:指令级流水。存储器分段管理机制引入处理器,扩大寻址能力。内存地址分段:寄存器最多存16位,故有些寄存器用来当段寄存器,代表着地址的高16位(低4位默认为0)。再加上段内偏移寄存器的值(低16位),就可以......
  • 微机原理笔记 - chap3 - Intel处理器指令系统及汇编语言
    汇编语言基础数据定义:数据传送、算术运算、跳转指令MOV指令“先目的操作数,再源操作数。”MOV指令需要遵循的规则:两个操作数的尺寸必须一致。两个操作数不能同时为内存操作数。movreg,regmovmem,regmovreg,memmovmem,immmovreg,immmovvar2,var1......
  • ABB机器人示教器中配置组输入输出
    很多学员在学习和使用机器人的过程中,会遇到一个很重要的东西,就是我们机器人要做输入输出时需要配置对应的信号。那我们配置对应信号的前提是要配置IO版。本篇文章就是基于已经配置好了DSQC652的信号板情况下的一个IO设置。注意:各位学员需要注意,并不是所有信号......
  • 重庆大学考研916微机原理及应用三831历年真题912参考答案初试辅导资料【全】
    重庆大学考研916微机原理及应用三831历年真题912参考答案初试辅导资料【全】重庆大学微机原理考研916微机原理及应用三912微机原理及应用二、831微机原理及应用一历年真题参考答案初试辅导资料获取链接:https://www.uu2id.com/950.html 资料含历年真题难点题目详细解析2......
  • 实验1 C语言输入输出和简单程序编写
    实验任务1(1)1#include<stdio.h>2intmain(){3printf("O\n");4printf("<H>\n");5printf("II\n");6return0;7}结果演示(2)1#include<stdio.h>2intmain(){3printf(&quo......