第9章IO程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章IO程序设计

第9章 I/O程序设计 9.1 I/O操作 9.2 直接传送方式 9.3 中断传送方式 9.4 DMA传送方式 9.5 文件I/O 9.1 I/O操作 CPU与外设之间的信息交换,是通过接口电路中的I/O端口进行的。 CPU通过IN/OUT指令可以对端口进行读、写操作。 9.1.1 I/O端口及其分配 计算机由CPU、内存储器和外部设备组成 内存与CPU可直接进行数据交换 外设与CPU通过I/O接口电路来连接 输入/输出是相对于CPU而言 输入操作:输入设备把信息送入接口,由CPU从接口电路中取得接口中的信息。 输出操作:CPU将信息传送给接口电路,再由接口电路传送到外设。 I/O接口包含3种类型的信息: (1)来自外设的数据或要送往外设的数据,分别保存在数据输入寄存器和数据输出寄存器中; (2)用来存放外设或者I/O接口部件本身的状态,保存在状态寄存器中; (3)用来存放CPU发出的命令,以便控制外设和接口的动作,保存在控制寄存器中。 端口和端口地址 端口:I/O接口电路中能被CPU直接访问的寄存器称为端口 端口地址:端口的地址 CPU访问I/O端口的方式: 统一编址方式(存储器映射方式 ) 独立编址方式(I/O映射方式 ) 统一编址和独立编址 统一编址 端口地址与存储器地址统一编址 从存储空间中划出一部分地址空间分配给I/O设备 CPU不需要使用专门的I/O指令来访问I/O端口 一个地址要么是内存单元,要么是I/O端口 独立编址 I/O端口地址与存储器地址分别进行独立的编址 内存地址空间和I/O地址空间相互独立 CPU必须使用专门的I/O指令来访问I/O端口 内存操作指令使用内存地址,I/O指令使用I/O地址 9.1.2 I/O指令 I/O指令包括: IN指令 OUT指令 INS指令 OUTS指令 1.IN指令 格式:IN {AL∣AX∣EAX},{端口地址∣DX} 功能:将I/O端口中的信息读入到累加器中。 累加器为AL时,从指定端口中读出1个字节送给AL; 累加器为AX时,从指定端口中读出1个字节送给AL,从下一端口地址中读出1个字节送给AH。 累加器为EAX时,连续读出从指定地址开始的4个端口中的内容,分别送给AL, AH和EAX的第23~16位、EAX的第31~24位。 当端口号大于等于256时,先把端口号放到DX寄存器中。当端口号小于256时,在IN指令中直接给出端口号。 IN指令举例 例1:从端口地址为61H的端口上读取一个字节 IN AL, 61H 例2:从端口地址为379H的端口上读取一个字节 MOV DX, 379H IN AL, DX 例3:从端口地址为0E000H,0E001H的端口上读取一个字 MOV DX, 0E000H IN AX, DX 2.OUT指令 格式:OUT {端口地址∣DX},{AL∣AX∣EAX} 功能:将累加器中的信息输出到I/O端口。 累加器为AL时,AL中的内容输出到指定端口中; 累加器为AX时,AL中的内容输出到指定端口中,AH中的内容输出到下一端口中; 累加器为EAX时,AL, AH, EAX的23~16位、EAX的31~24位的内容输出到从指定地址开始的4个端口中。 当端口号大于等于256时,必须先把端口号放到DX寄存器中。当端口号小于256时,在OUT指令中可以直接给出端口号。 OUT指令举例 例1:将AL中的内容输出到61H端口: OUT 61H, AL 例2:将AL中的内容输出到37Ah端口: MOV DX, 37AH OUT DX, AL 例3:将AL和AH中的内容输出到3CEH、3CFH端口: MOV DX, 3CEH OUT DX, AX 3.INS指令 格式:INSB/INSW/INSD 功能:将I/O端口中的信息读入到ES:[EDI]指向的内存单元中。 使用INSB时,从端口号为DX的端口中读出1个字节送给ES:[EDI]单元。 使用INSW时,从端口号为DX和DX+1的端口中分别读出1个字节送给ES:[EDI],ES:[EDI+1]单元。 使用INSD时,从端口号为DX,DX+1,DX+2,DX+3的端口中分别读出1个字节送给ES:[EDI],ES:[EDI+1],ES:[EDI+2],ES:[EDI+3]单元。 INS指令举例 从170H端口连续读取512次,将读取到的信息放在Buffer数组中 buffer BY

文档评论(0)

qianqiana + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5132241303000003

1亿VIP精品文档

相关文档