§
站在处理器或主机立场上而言的输入/输出
处理器访问(存取)接口上的特定的一组寄存器
输入/输出
处理器
并行口
控制器/接口
串行口
控制器/接口
打印机
MODEM
1
•数据寄存器:存放外设与主机之间传送的信息,在缓冲区可存放一批数据。
•状态寄存器:存放外设或接口的状态。
•控制(命令)寄存器:存放控制外设的信号或命令。
注:同样的二进制代码,在不同的寄存器中将有不同的作用。
I/O端口地址
为了存取接口上的寄存器,系统给这些寄存器分配专门的存取地址,这样的地址称为I/O端口地址。
2
两类端口地址
I/O端口地址和存储单元地址统一编址
I/O端口地址和存储单元地址各自独立编址
8086/8088支持独立的I/O端口地址空间
地址空间达64K
实际的系统中,只用很小的一部分
3
I/O指令概念
专门用于存取端口的指令
归入数据传送指令组
输入指令
一般格式:
IN 累加器,端口地址
说明
输入指令从一个输入端口读取一个字节或一个字,传送至AL(若是一个字节)或AX(若是一个字)。
端口地址可采用直接方式表示,也可采用间接方式表示。
4
当采用直接方式表示端口地址时,端口地址仅为8位,即0至255;当采用间接方式表示端口地址时,端口地址存放在DX寄存器中,端口地址可为16位。
IN AL,PORT ;AL (PORT)
IN AX,PORT ;AX (PORT+1∶PORT)
IN AL,DX ;AL (DX)
IN AX,DX ;AX (DX+1∶DX)
IN AL,21H
;
MOV DX,2FCH
IN AX,DX
5
输出指令
一般格式:
OUT 端口地址,累加器
说明
输出指令将AL中的一个字节,或在AX中的一个字,输出到指定端口。
端口地址可采用直接方式表示,也可采用间接方式表示。
6
当采用直接方式表示端口地址时,端口地址仅为8位,即0至255;当采用间接方式表示端口地址时,端口地址存放在DX寄存器中,端口地址可为16位。
OUT PORT,AL ;(PORT) AL
OUT PORT,AX ;(PORT+1∶PORT) AX
OUT DX,AL ;(DX) AL
OUT DX,AX ;(DX+1∶DX) AX
MOV AX,4523H
MOV DX,2FCH
OUT DX,AX
7
8/16/32 位输入,输出
IN AL, P8 OUT P8, AL
IN AX, P8 OUT P8, AX
IN EAX, P8 OUT P8, EAX
IN AL, DX OUT DX, AL
IN AX, DX OUT DX, AX
IN EAX, DX OUT DX, EAX
8
成批数据传送,适用于高速I/O设备。不需要I/O指令,直接与存储器交换数据。由DMA控制器控制,CPU退出控制。
步骤:
•DMA控制器向CPU发出HOLD信号,请求使用总线。
• CPU回答信号HLDA给DMA控制器,让出总线控制权。
•传输数据的存储器地址出现在地址总线。
•数据字节出现在数据总线
•地址加1,字节计数减1
•计数不等于0
•计数等于0,撤消HOLD信号,CPU控制总线。
9
立即传送。最简单的程序控制方式,适用于变化缓慢的I/O,如传感器、扬声器等。当传送数据数据时,不必考虑其是否准备就绪。
方法:在程序适当的位置直接写I/O指令。
例:最基本的直接控制扬声器发出声音的程序
与门
放大器
端口地址61H
10
CAN技术简介 来自淘豆网m.daumloan.com转载请标明出处.