汇编语言-IO程序设计.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言-IO程序设计

2000年1月25日 北京理工大学 / 第9章 IO程序设计 9.1 IO基本概念 9.2 直接传送方式 9.3 中断传送方式 9.4 DMA传送方式 I/O是输入/输出的简写,输入/输出是对外部设备进行控制和数据交换的过程。 9.1 I/O基本概念 CPU与外设之间的信息传送有多种方式,微机中通常使用以下3种。 (1)直接传送方式。 (2)中断传送方式。 (3)DMA传送方式。 9.1.1 I/O端口及其分配 I/O接口作为CPU和外设之间的“缓冲”,包含3种类型的信息。 (1)来自外部设备的数据或者要送往外部设备的数据,分别保存在数据输入寄存器和数据输出寄存器中。 (2)用来存放外部设备或者I/O接口部件本身的状态,保存在状态寄存器中。 (3)用来存放CPU发出的命令,以便控制外部设备和接口的动作,保存在控制寄存器中。 CPU可以使用两种方式来访问I/O端口: 统一编址方式 独立编址方式 (1)统一编址。从存储空间中划出一部分地址空间分配给I/O设备,存储空间的地址映射到I/O接口电路的端口,剩下的部分由内存使用。 (2)独立编址。内存地址空间和I/O地址空间是相互独立的。 按照PC系列微机系统中I/O接口电路的复杂程度及应用形式,可以把I/O接口的硬件分为两大类。 (1)系统板上的I/O接口芯片。 (2)扩展槽上的I/O接口卡。 9.1.2 保护模式下I/O指令的限制 如前所述,所有I/O端口与CPU之间的通信都由IN和OUT指令来完成。因为通过I/O指令可以控制系统中的所有接口电路,在Windows NT/2000/XP/2003中,设置了标志寄存器中的IOPL=3,而且任务状态段中没有设置I/O位图,相当于I/O位图中所有I/O端口的对应位为1,所以不允许应用程序使用I/O指令。应用程序运行在CPL=3的最低特权级。 9.2 直接传送方式 (1)无条件传送方式。 (2)查询方式。 9.2.1 CMOS数据的读取 CMOS RAM容量至少为64字节,一般为256字节。实时钟信息使用了最前面的14个字节,其他的字节用于保存微机的配置信息。 例9.1 读取实时钟。(程序见课本) 程序PROG0901通过读取RTC数据寄存器获得当前时钟。在Windows操作系统下,应用程序被限制不能执行I/O指令。这时,要借助于一个驱动程序giveio.sys。还需要一个allowio.exe将这个驱动程序装入到操作系统中。 程序打开\\.\giveio设备,在打开设备时,giveio驱动程序设置这个程序的任务状态段的I/O位图数据为全0,允许该程序执行I/O。 9.2.2 扬声器发声程序 例9.2 程序PROG0902是使PC的扬声器发声的一段程序。声音的频率为896 Hz,每次持续时间约0.3秒,间隔0.3秒后,再发声0.3秒,一共发声10次。 (程序见课本) 9.2.3 串行I/O 串行接口是微机中常用的接口,也被称作COM口。微机中一般都配备了两个COM口,称为COM1、COM2。 (1)发送保持寄存器(THR) (2)接收缓冲寄存器(RBR) (3)线路状态寄存器(LSR) 例9.3 在不考虑串口发送、接收出错的情况下,从COM1发送一个字符(在AL中)的程序见PROG0903。 9.2.4 并行I/O 从PC/XT开始,微机系统就配有一个并行接口,一直延续至今。并口主要用来连接打印机。并口被称作LPT。LPT1是第1个并口。并口有3个端口:数据端口、状态端口和控制端口。LPT1的3个端口的地址分别为:378H、379H、37AH。 (1)数据端口。 (2)状态端口。 (3)控制端口。 例9.5 输出AL中的字符到打印机的程序见PROG0905。 (程序见课本) 9.2.5 直接读取硬盘扇区 硬盘一般采取IDE(Integrated Drive Electronics)接口,硬盘控制器与硬盘盘体集成在一起。光驱也大多采取IDE接口。 1. IDE控制器 2. 主盘和从盘 3. 数据传输模式 4. 扇区编址模式 5.ATA设备寄存器 (1)命令寄存器(Command Register,8位)。 (2)状态寄存器(Status Register,8位)。 (3)数据寄存器(Data Register,16位)。 (4)设备控制寄存器(Device Control Register,8位)。 (5)扇区数寄存器(Sector Count Register,8位)。 (6)设备/磁头寄存器(Device/Head Register)。 (7)高

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档