汇编语言第六章输入输出和WIN编程.doc

汇编语言第六章输入输出和WIN编程.doc

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

输入/输出和中断 和WIN32编程 前面已经讲过有关输入/输出的问题,主要是用DOS中断调用INT 21H来完成键盘输入以及屏幕显示。对于计算机来说,仅有这种输入/输出还不够,因为DOS的中断调用无法实现对其它外设的控制。关于如何用汇编程序实现主机与外设之间的信息交换,将是本章的主要内容。包括: 输入输出指令的使用格式及功能; 主机与外部设备之间传送数据的方式; 中断的概念及中断处理程序设计; WIN32程序设计基本方法与技术。 I/O设备与数据传送方式 主机与外设之间数据的传送方式 计算机与外设之间传送数据有如下4中方式: 无条件传送方式:适合于CPU与外设同步的情况。直接传送,高速外设与主机之间数据传送。 查询传送方式:适合于低速外设与主机之间数据传送。 中断传送方式:适合于低速外设与主机之间数据传送。 直接存贮器(又称DMA)传送方式:适合于高速外存与主机的数据传送。 其中:无条件传送和查询传送,直接在端口上利用IN和OUT指令传送数据。 中断传送:在DOS及BIOS层上通过系统功能调用的中断指令实现。 直接存贮方式:在端口上,采用通道技术实现。在计算机准备好接收,外设准备好传送数据时,外设向CPU发一个请求DMA传送信号,此时CPU让出总线控制权,使外设与主存在短时间内成批传送数据。 外设与主机传送的接口与信息 端口与接口 计算机的外设都是通过接口连接到系统上,每个接口由一组寄存器组成,寄存器都有一个称为I/O端口的地址编码。 也就是,每一台外设都通过硬件接口与主机端口相连,并交换信息。 接口的组成:设备状态寄存器、设备控制寄存器、数据寄存器。上述寄存器在I/O空间中都有固定编码。 I/O端口的地址空间:允许设置64K个8位端口或32K个16位端口。对I/O空间的访问用IN或OUT两个指令。 I/O端口地址分配,可以查手册。 如:40H~43H时钟/定时器,60H~63H为8255通讯芯片的接口。 外设与主机的信息交换 传送的信息分为三类: 控制信息:CPU把控制信息从端口输出到对应外设接口的控制寄存器中,告诉外设应做什么。 状态信息:把外设的状态寄存器中的内容送到对应的端口中,以便CPU了解外设状态。 数据信息:需要交换的数据(8位、16位)。 程序直接控制I/O方式 直接I/O方式有两种: 无条件传送方式:不查询外设状态寄存器的状态,直接用IN或OUT指令实现CPU与外设信息传送。该方式的特点是:CPU与外设必须同步工作。 查询传送方式:查询外设状态和控制寄存器中的内容,确定是否传送。特点:CPU与外设不同步。 IN和OUT指令 通过前面的学习,我们已经知道,外设与主机传送信息,必须用IN和OUT指令。 输入指令IN 功能:从外设寄存器取信息送入AX或AL。 4种形式: IN AL, PORT 功能:(PORT)→AL IN AX, PORT 功能:(PORT+1,PORT)→AX IN AL, DX 功能:([DX])→AL IN AX, DX 功能:([DX])→AX 由AL或AX决定取几个端口的内容。 输出指令OUT 功能:将AX或AL内容送到外设寄存器中。 4种形式: OUT PORT, AL 功能:(AL)→PORT OUT PORT, AX 功能:(AX)→PORT(2个8位口) OUT DX, AL 功能:(AL)→[DX] OUT DX, AX 功能:(AX)→[DX] 同样,由AL或AX决定送到几个端口。如: IN AL, 40H OUT 80H, AL MOV DX, 379H IN AL, DX 注意:端口地址>255,就放到DX中。 程序直接控制传送方式 无条件传送方式 特点:不查询外设状态,直接用IN和OUT指令传送信息。采用这种方式,必须保证外设与CPU在传送数据的过程中,具有相同速度(同步)。 例:扬声器发声程序。 已知扬声器的控制寄存器的端口地址为61H,硬件结构如下: 程序通过I/O指令,使设备控制寄存器的b1位为0或1(交替为0或1),与门的输入为0和1交替的电信号,输出为一个脉冲电流,经放大后,送扬声器使之发声。 查询传送方式 特点:查询外设状态,条件满足时传送。适合于低速外设与CPU传送信息。 输入 输入之前,查询数据是否准备好,若准备好则输入,否则等待。 流程: 例:串行通讯I/O。 串行通讯端口:采用8250芯片,数据寄存器端口地址为3F8H,状态寄存器端口地址为3FDH,其中b0位是输入数据数据准备位,b5位是输出数据准备位。 串行口输入程序: 输出 输出之前,要查询外设是否“忙”,若“忙”则等待,否则输出数据。 流程: 例:串行口输出子程序。 查询方式的缺点:CPU反复等待状态位,浪费大量CPU资源。 中断传送方式

文档评论(0)

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

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

1亿VIP精品文档

相关文档