欢迎来到天天文库
浏览记录
ID:48255425
大小:602.00 KB
页数:89页
时间:2020-01-18
《第8次课+输入输出程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第8次课输入输出程序设计8.1I/O设备的数据传送方式8.1.1CPU与外设1、每个输入输出设备都要通过一个硬件接口或控制器和CPU相连2、输入输出指令IN、OUT实现接口和控制器与外部设备交换信息I/O设备CPU外部设备三种信息三种信息:控制、状态和数据信息,按不同的端口地址分别传送控制信息:输出到I/O接口,告诉接口和设备要做什么状态信息:从接口输入,表示I/O设备当前的状态数据信息:I/O设备和CPU真正要交换的信息IBMPC的输入/输出方式(1)程序直接控制I/O方式:用IN和OUT指令直
2、接在端口级上处理输入输出(2)中断传送方式(3)DMA方式本章重点是:(1)程序直接控制I/O方式(2)中断传送方式8.1.2直接存储器存取方式直接存储器存取DMA:也称为成组数据传送方式适用:一些高速的I/O设备,如磁带、磁盘、模数转换器(A/D)等设备DMA方式能使I/O设备直接和存储器进行成批数据的快速传送DMA控制器一般包括四组寄存器:状态控制寄存器数据寄存器地址寄存器字节计数器DMA传送概述完成DMA传送的步骤1.DMA控制器向CPU发出HOLD信号请求使用总线2.CPU发出响应信号HO
3、LD给DMA控制器,并将总线让出,这时CPU不再使用总线,而DMA控制器获得总线控制权3.传输数据的存储器地址(在地址寄存器中)通过地址总线发出DMA传送概述4.传输的数据字节通过数据总线进行传送5.地址寄存器增16.字节计数器减17.如字节计数器非0,转向第3步8.否则,DMA控制器撤消总线请求信号HOLD,传送结束8.2程序直接控制I/O方式8.2.1I/O端口1、接口寄存器组、I/O端口地址编码接口:每个接口由一组寄存器组成地址编码:这些寄存器都分配有一个称为I/O端口的地址编码2、I/O接
4、口寄存器:数据寄存器:用作数据缓冲状态寄存器:用作保存设备和接口的状态信息,供CPU对外设进行测试命令寄存器:用来保存CPU发出的命令以控制接口和设备的操作端口号、地址空间3、地址空间总64KB端口号:端口寄存器的编号端口编址:在一个独立的地址空间中端口设置:可设置64K(65536)个8位端口或32K(32768)个16位端口386及以后机型有32位端口00-0F:DMA芯片8237A20-21中断控制器8259A40-48时钟/定时器60-63可编程序外围接口芯片(PPI)8255A70-71
5、CMOSRAM200-20F游戏适配器278-27A3号并行口(LPT2打印机)2F8-2FE2号串行口(COM2)32D-32F硬磁盘控制器378-37A并行接口打印机适配器3B0-3BF单色显示和并行打印机适配器3D0-3DF彩色/图形适配器CGA3F0-3F7软磁盘控制器3F8-3FE异步通讯适配器(COM1)部分端口地址8.2.2I/O指令I/O指令:IN、OUT用于I/O端口与CPU之间的通信IN和OUT:既可传送字节也可传送字传送方式:有直接端口寻址和间接端口寻址两种方式:长格式:直接
6、端口寻址短格式:间接端口寻址I/O指令中使用的寄存器必须是AL或AX所有I/O端口与CPU之间的通信都由IN和OUT指令来完成IN:输入,I/O端口==>CPUOUT:输出,CPU==>I/O端口只限于使用累加器EAX、AX或AL传送信息例:INAX,28HOUT5,EAXIN、OUT:I/O端口与CPU之间的通信45BC123428HIN输入指令格式长格式为:INAL,PORT(字节)INAX,PORT(字)INEAX,PORT(双字)执行的操作:(AL)←(PORT)(字节)(AX)←(
7、PORT+1,PORT)(字)(EAX)←(PORT+3,PORT+2,PORT+1,PORT)确定是否为字节、字、双字的依据是源操作数例:INEAX,45HPORT号至多8为位,即:0~255或00H~FFH例:INAX,45HINAL,DX(字节)INAX,DX(字)INEAX,DX(双字)执行的操作:(AL)←((DX))(字节)(AX)←((DX)+1,(DX))(字)(EAX)←((DX)+3,(DX)+2,(DX)+1,(DX))(双字)例:MOVDX,28HINAX,DX或如IN
8、EAX,DX短格式45BC123428HDXOUT输出指令长格式为:OUTPORT,AL(字节)OUTPORT,AX(字)OUTPORT,EAX(双字)短格式为:OUTDX,AL(字节)OUTDX,AX(字)OUTDX,EAX(双字)执行情况与IN相反例:OUT5,AL;设(DX)=345H,OUTDX,EAX端口输入输出例题指令功能INAL,PORT(AL)←(PORT)INAX,PORT(AX)←(PORT+1,PORT)INAL,DX(AL)←((DX))INAX,DX(AX
此文档下载收益归作者所有