第八章、输入输出程序设计.ppt
《第八章、输入输出程序设计.ppt》由会员分享,可在线阅读,更多相关《第八章、输入输出程序设计.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Assembly LanguageAssembly LanguageCPUMEMI/O设备设备三总线三总线I/O接口接口第八章、输入输出程序设计第八章、输入输出程序设计第八章、输入输出程序设计第八章、输入输出程序设计第第第第17171717讲:讲:讲:讲:I/OI/OI/OI/O设备的数据传送方式一和二设备的数据传送方式一和二设备的数据传送方式一和二设备的数据传送方式一和二第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Languag
2、e8.18.1、I/OI/O设备的数据传送方式设备的数据传送方式设备的数据传送方式设备的数据传送方式8.1.18.1.18.1.18.1.1、CPUCPUCPUCPU与外设与外设与外设与外设 任任何何外外部部设设备备与与CPUCPU通通信信必必须须通通过过一一个个硬硬件件“接接接接口口口口”或或“控控控控制制制制器器器器”;这这些些接接口口或或控控制制器器都都必必须须能能够够支支支支持持持持输输入入设设备备指指令令IN/OUTIN/OUT与与外外部部设设备备交交换换信信息息,它它们们必必须须按按照照不不不不同同同同的的的的端端端端口口口口地地地地址址址址分别传送以下三种不同性质的信息:分别传送
3、以下三种不同性质的信息:1.1.1.1.控制信息控制信息由由CPUCPU发给发给I/OI/O接口,接口,有的有的有的有的再由再由I/OI/O接口送给接口送给I/OI/O设备,通知接口和设备,通知接口和 I/O I/O设备完成哪些工作(如:设备完成哪些工作(如:CPUCPU发给打印机接口的启动信号);发给打印机接口的启动信号);2.2.2.2.状态信息状态信息由由I/OI/O设备经接口传送给设备经接口传送给CPUCPU,告知,告知CPUCPU当前设备所处的状态;当前设备所处的状态;输入设备输入设备用用”准备好(准备好(READYREADY)”信号表示外设是否已准备好输入数据;信号表示外设是否已准
4、备好输入数据;输出设备输出设备用用“忙忙(BUSY)(BUSY)”信号表示外设是否处于空闲状态;信号表示外设是否处于空闲状态;3.3.3.3.数据信息数据信息由由I/OI/O设备经接口传给设备经接口传给CPUCPU或由或由CPUCPU经接口传送经接口传送I/OI/O设备的真正需要设备的真正需要 交换的各种数据。交换的各种数据。注意注意注意注意接口与接口与I/OI/O设备之间的数据信息可以是并行的数据(并行口),也可以设备之间的数据信息可以是并行的数据(并行口),也可以 是串行口(串行口)。是串行口(串行口)。8.1.28.1.28.1.28.1.2、CPUCPUCPUCPU与与与与I/OI/O
5、I/OI/O设备之间的信息传送方式设备之间的信息传送方式设备之间的信息传送方式设备之间的信息传送方式第一种方式第一种方式直接存储器存取方式(简称直接存储器存取方式(简称“DMADMADMADMA方式方式方式方式”或或“成组传送方式成组传送方式成组传送方式成组传送方式”)第二种方式第二种方式程序直接控制方式(简称程序直接控制方式(简称“程序控制方式程序控制方式程序控制方式程序控制方式”)第三种方式第三种方式中断传送方式(简称中断传送方式(简称“中断方式中断方式中断方式中断方式”)第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总
6、目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language8.1.38.1.38.1.38.1.3、直接存贮器存取方式(、直接存贮器存取方式(、直接存贮器存取方式(、直接存贮器存取方式(DMADMADMADMA方式方式方式方式 )1.1.1.1.传送特征传送特征传送特征传送特征.用用于于速速速速度度度度非非非非常常常常快快快快的的I/OI/O设设备备;如如磁磁盘盘、ADAD转转换换器器等等,如如果果这这些些设设备备用用另另外外二二种种方方式式则则容易丢失数据;容易丢失数据;.能能够够实实现现I/OI/O设设备备直直接接和和内内存存之之间间进进行
7、行成成批批数数据据的的快快速速传传送送,即即:每每一一个个字字节节的的传传送送不不必必经经过过CPUCPU处处理理,I/OI/O数数据据一一到到接接口口就就直直接接送送往往存存储储器器,接接口口和和DMA DMA 控控制制器器同同样样可可以以直直接从内存中取出一个字节送给接从内存中取出一个字节送给I/OI/O设备;设备;.传送数据前必须经过初始化传送数据前必须经过初始化DMADMA控制器并申请总线使用权;控制器并申请总线使用权;2.DMA2.DMA2.DMA2.DMA控制器的主要构成控制器的主要构成控制器的主要构成控制器的主要构成四个寄存器,每个寄存器都有一个地址四个寄存器,每个寄存器都有一个
8、地址 1.1.1.1.控制寄存器控制寄存器控制寄存器控制寄存器由由CPUCPU写入写入“控制字控制字”,由此得知是输出还是写入等;,由此得知是输出还是写入等;2.2.2.2.状态寄存器状态寄存器状态寄存器状态寄存器由由I/OI/O设备写入设备写入“状态字状态字”,由此得知,由此得知I/OI/O设备当前状态;设备当前状态;3.3.3.3.地地地地址址址址寄寄寄寄存存存存器器器器存存放放的的是是要要传传送送的的数数据据块块首首地地址址(内内存存地地址址);每每传传送送一一次次自自动动增增1 1;4.4.4.4.字字字字节节节节计计计计数数数数器器器器存存放放的的是是要要传传送送的的数数据据块块中中
9、的的字字节节个个数数(即即数数据据长长度度);每每传传送送一一次次自动减自动减1 1;第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language3.DMA3.DMA3.DMA3.DMA方式的基本工作过程方式的基本工作过程方式的基本工作过程方式的基本工作过程:1.1.1.1.DMADMADMADMA申申申申请请请请总总总总线线线线DMADMA控控制制器器接接受受到到I/OI/O指指令令后后检检测测到到I/OI/O设设备备状状态态,
10、然然后后向向CPUCPU发发出出HOLDHOLD信号申请总线使用权信号申请总线使用权;2.2.2.2.CPUCPUCPUCPU释释释释放放放放总总总总线线线线CPUCPU根根据据自自身身情情况况向向DMADMA控控制制器器返返回回HOLDHOLD响响应应信信号号,然然后后交交出出总总线线使使用权;用权;3.3.3.3.打开内存打开内存打开内存打开内存DMADMA的地址寄存器向地址总线发送地址信号的地址寄存器向地址总线发送地址信号;4.4.4.4.数据传送数据传送数据传送数据传送传送的字节数据通过数据总线传送传送的字节数据通过数据总线传送;5.5.5.5.地址值增地址值增地址值增地址值增1 1
11、1 1地址寄存器自动增地址寄存器自动增1 1指向下一个字节;指向下一个字节;6.6.6.6.字节计数值减字节计数值减字节计数值减字节计数值减1 1 1 1字节计数器自动减字节计数器自动减1 1;7.7.7.7.循环继续循环继续循环继续循环继续若计数器不为若计数器不为0 0则转向则转向3333 ;8.8.8.8.DMADMADMADMA释放总线释放总线释放总线释放总线DMADMA撤销总线请求信号撤销总线请求信号HOLDHOLD而返还总线使用权,传送结束。而返还总线使用权,传送结束。第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录
12、总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language8.2.18.2.18.2.18.2.1、I/OI/OI/OI/O端口端口端口端口1.1.任何任何I/OI/O设备的接口由一组寄存器组成,每个寄存器都被分配一个设备的接口由一组寄存器组成,每个寄存器都被分配一个I/OI/O端口地址,即端口地址,即I/OI/O端口号,端口号,I/OI/O端口有如下三种寄存器:端口有如下三种寄存器:1.1.数据寄存器数据寄存器数据寄存器数据寄存器有多个组成,存放数据,作数据缓冲用;有多个组成,存放数据,作数据缓冲用;2.2.状态寄存器状态寄存器状态寄存器状
13、态寄存器仅一个,存放当前设备的状态信息;仅一个,存放当前设备的状态信息;3.3.命令寄存器命令寄存器命令寄存器命令寄存器仅一个,存放仅一个,存放CPUCPU发来的用以控制接口的命令字;发来的用以控制接口的命令字;2.2.端口地址端口地址80808686微机中微机中I/OI/O端口编址采用端口编址采用“独立编址独立编址”方式,方式,I/OI/O空间允许设置空间允许设置64K64K个个8 8位端口或位端口或32K32K(3276832768)个)个1616位端口。位端口。说明说明不同类型计算机的不同类型计算机的I/OI/O端口号不完全相同,参见端口号不完全相同,参见P P284284表表8.18.
14、1实例。实例。8.2.28.2.28.2.28.2.2、I/OI/OI/OI/O指令回顾指令回顾指令回顾指令回顾ININININ和和OUTOUTOUTOUT(统一编址计算机系统没有该指令)(统一编址计算机系统没有该指令)1.1.1.1.输入指令输入指令输入指令输入指令ININININ数据从外设端口传送给数据从外设端口传送给ACC ACC 1.1.1.1.直接寻址直接寻址直接寻址直接寻址长格式长格式(PORTPORTPORTPORT为为为为8 8 8 8位端口号)位端口号)位端口号)位端口号)IN AL,PORTIN AL,PORTIN AL,PORTIN AL,PORT字节传送字节传送 (AL
15、)(AL)(PORT)(PORT)IN AX,PORTIN AX,PORTIN AX,PORTIN AX,PORT字节传送字节传送 (AX)(AX)(PORT+1,PORT)(PORT+1,PORT)IN EAX,PORTIN EAX,PORTIN EAX,PORTIN EAX,PORT双字传送双字传送 (EAX)(EAX)(PORT+3,PORT+2,PORT+1,PORT)(PORT+3,PORT+2,PORT+1,PORT)2.2.2.2.间接接寻址间接接寻址间接接寻址间接接寻址短格式短格式(DXDXDXDX中是中是中是中是16161616位端口号)位端口号)位端口号)位端口号)IN A
16、L,DX IN AL,DX IN AL,DX IN AL,DX字节传送字节传送 (AL)(AL)(DX)(DX)IN AX,DX IN AX,DX IN AX,DX IN AX,DX字节传送字节传送 (AX)(AX)(DX)+1,(DX)(DX)+1,(DX)IN EAX,DX IN EAX,DX IN EAX,DX IN EAX,DX双字传送双字传送 (EAX)(EAX)(DX)+3,(DX)+2,(DX)+1,(DX)(DX)+3,(DX)+2,(DX)+1,(DX)8.28.2、程序直接控制、程序直接控制、程序直接控制、程序直接控制I/OI/O方式方式方式方式 第第1717讲:讲:I/O
17、I/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language2.2.2.2.输出指令输出指令输出指令输出指令OUTOUTOUTOUT数据从数据从ACCACC流向外设端口流向外设端口1.1.1.1.直接寻址直接寻址长格式长格式 OUT PORTOUT PORTOUT PORTOUT PORT,ALALALAL 字节传送字节传送(PORT)(PORT)(AL)(AL);OUT PORTOUT PORTOUT PORTOUT PORT,AX AX AX AX 字
18、节传送字节传送(PORT+1,PORT)(PORT+1,PORT)(AX)(AX);OUT PORTOUT PORTOUT PORTOUT PORT,EAXEAXEAXEAX双字传送双字传送(PORT+3,PORT+2,PORT+1,PORT)(PORT+3,PORT+2,PORT+1,PORT)(EAX)(EAX);2.2.2.2.间接接寻址间接接寻址短格式短格式 OUT DXOUT DXOUT DXOUT DX,ALALALAL 字节传送字节传送(DX)(DX)(AL)(AL)OUT DXOUT DXOUT DXOUT DX,AXAXAXAX 字节传送字节传送(DX)+1,(DX)(DX)
19、+1,(DX)(AX)(AX)OUT DXOUT DXOUT DXOUT DX,EAXEAXEAXEAX双字传送双字传送(DX)+3,(DX)+2,(DX)+1,(DX)(DX)+3,(DX)+2,(DX)+1,(DX)(EAX)(EAX)说明说明说明说明:.DOSDOS功功能能调调用用(INT INT 21H21H)或或BIOSBIOS例例行行程程序序(INT INT 16H16H)中中的的与与外外设设交交换换数据都是由数据都是由ININ或或OUT OUT 指令构成其中断程序的;指令构成其中断程序的;.程程序序中中直直接接用用IN/OUTIN/OUT与与I/OI/O设设备备交交换换信信息息比
20、比DOSDOS功功能能调调用用或或BIOSBIOS例例行行程程序序调调用要快,但编程人员必须对用要快,但编程人员必须对I/OI/O设备的构结非常了解,且程序对硬件依赖性也大;设备的构结非常了解,且程序对硬件依赖性也大;第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language3.IN/OUT3.IN/OUT指令的应用实例指令的应用实例例例1 1:循循环环测测试试可可编编程程中中断断控控制制器器8259A8259A的的状状态态寄寄
21、存存器器的的第第二二位位是是否否为为1 1,若若为为1 1则则推推出出测测试;试;AGAIN:AGAIN:IN AL,IN AL,STATUS_PORTSTATUS_PORT TEST AL,00000100B TEST AL,00000100B JZ AGAIN JZ AGAIN例例2 2:读读取取某某接接口口的的命命令令寄寄存存器器(端端口口号号位位126H126H)然然后后使使其其第第七七位位置置1 1而而进进行行成成组数据传送。组数据传送。MOV DX,126H MOV DX,126H IN AL,DX IN AL,DX OR AL,80H OR AL,80H OUT DX,AL OU
22、T DX,AL 第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language8.2.38.2.38.2.38.2.3、程序直接控制、程序直接控制、程序直接控制、程序直接控制I/OI/OI/OI/O方式的实现方法方式的实现方法方式的实现方法方式的实现方法查询方式查询方式查询方式查询方式(或称或称“等待方式等待方式等待方式等待方式”)1.1.查查查查询询询询方方方方式式式式的的的的基基基基本本本本思思思思想想想想程程序序检检测测I/O
23、I/O的的状状态态信信息息,若若允允许许进进行行I/OI/O数数据据传传送送则则进进行行数数据据传传送送,否否则则等待一定时间再查询;等待一定时间再查询;2.2.查询的优缺点查询的优缺点查询的优缺点查询的优缺点优优优优点点点点可可以以利利用用程程序序安安排排多多个个I/OI/O设设备备的的优优先先顺顺序,从而按照一定的次序轮流进行序,从而按照一定的次序轮流进行I/OI/O信息传递;信息传递;缺缺缺缺点点点点CPUCPU要要用用大大量量时时间间查查询询I/OI/O设设备备,浪浪费费CPUCPU的时间;的时间;程序增长,浪费内存的存储空间;程序增长,浪费内存的存储空间;第第1717讲:讲:I/OI
24、/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language设备控制寄存器设备控制寄存器设备控制寄存器设备控制寄存器(61h)(61h)(61h)(61h)1/0 01/0 01/0 01/0 0 控制其它外部设备控制其它外部设备控制其它外部设备控制其它外部设备与与与与门门门门放大器放大器放大器放大器2 2 2 2号定时器门控号定时器门控号定时器门控号定时器门控1 01 03.I/O3.I/O3.I/O3.I/O程序实例分析:程序实例分析:程序实例分析:程序
25、实例分析:Eg8.1Eg8.1Eg8.1Eg8.1发声子程序发声子程序发声子程序发声子程序1 1 1 1 movdx,100movdx,100inal,61hinal,61handal,11111100bandal,11111100bsound:sound:xoral,2xoral,2out61h,alout61h,almovcx,140hmovcx,140hwait1:wait1:loopwait1loopwait1decdxdecdxjnesoundjnesound第第1717讲:讲:I/OI/O设备的数据传送方式一和二设备的数据传送方式一和二(2(2课时课时)总目录总目录总目录总目录后一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 输入输出 程序设计
限制150内