汇编语言讲义第八章.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文档。上传文档
查看更多
汇编语言程序设计 教学重点 本章将以一些常用的I/O设备为例,着重讨论I/O程序设计,特别是中断程序设计的方法。 外设与CPU数据传送方式 中断传送方式 第八章 输入输出程序设计 8.1 I/O设备的数据传送方式 8.2 程序直接控制I/O方式 8.3 中断传送方式 8.1 I/O设备的数据传送方式 8.1.1 CPU与外设 8.1.2 直接存储器存取(DMA)方式 8.1.1 CPU与外设 与CPU进行数据交换的,除了存储器外,还有输入输出设备(统称为外设)。 输入IN和输出OUT指令,可以从外设读取数据和向外设提供数据。 由于外设种类繁多,其工作原理、数据格式、操作时序等各异,所以在处理器与外设之间还有一个协调两者数据传送的逻辑电路,称为输入输出(I/O)接口电路。 处理器并不直接操纵外设,而是通过I/O接口来控制外设。 I/O接口电路示意图 I/O接口电路中的寄存器 I/O接口电路呈现给程序员的,是各种可编程寄存器。 这些寄存器可以分成三类: 数据寄存器——它保存和处理与外设间交换的数据; 控制寄存器——处理器通过它对外设进行控制,也称命令寄存器; 状态寄存器——外设的当前工作状态通过它向处理器提供。 在涉及外设操作的输入输出程序中,各种寄存器以I/O地址(端口)体现;对应三类寄存器分别称为:数据端口、控制端口、状态端口。 CPU与外设数据传送方式 程序直接控制I/O方式 程序查询I/O方式 中断传送方式 直接存储器存取(DMA)方式 8.1.2 直接存取器存取(DMA)方式 主要由硬件DMA控制器实现其传送功能。 DMA(direct memory access)方式,也称为成组数据传送方式。 主要用于一些高速的I/O设备。如磁带、磁盘、A/D等设备。 传送数据时,每个字节一到达端口,就直接从接口送到存储器;同样,接口和它的DMA控制器也能直接从存储器取出字节并把它送到I/O设备去。 DMA工作原理 DMA控制器(intel 8237A)一般包括四个寄存器: 控制寄存器 状态寄存器 地址寄存器 字节计数器 在信息传送前,应初始化这些寄存器。 地址寄存器←要传送的数据块首地址; 字节寄存器←要传送的数据长度(字节数); 状态寄存器←控制字,指出数据是输入还是输出,并启动DMA操作。 每个字节传送后,地址寄存器加1,字节计数器减1。 DMA传送步骤 由系统完成以下步骤: ⑴DMA控制器向CPU发出HOLD信号,请求使用总线。 ⑵CPU发出响应信号HOLD给DMA控制器,并将总线让出,这时CPU放弃了对总线的控制,而DMA控制器获得了总线控制权。 ⑶传输数据的存储器地址(在地址寄存器中)通过总线发出。 ⑷传输的字节数通过数据总线进行传送。 ⑸地址寄存器加1,以指向下一个要传送的字节。 ⑹字节计数器减1。 ⑺如字节计数器非0,转向第3步。 ⑻否则,DMA控制器撤销总线请求信号HOLD,传送结束。 8.2 程序直接控制I/O方式 8.2.1 I/O端口 8.2.2 I/O指令 8.2.3 I/O程序举例 8.2.1 I/O端口 CPU和内存通过I/O端口与外设进行通信。 80x86中,I/O端口独立编址,允许设置64K(65535)个8位端口,或32K(32768)个16位端口。 表8.1列出了部分端口地址(十六进制)。 8.2.2 I/O指令 IN/OUT指令,即可传送字节又可传送字,使用的寄存器必须是AL或AX。 直接寻址:寻址0~255号端口。 间接寻址:所有端口,使用DX寄存器。 8.2.3 I/O程序举例 8.3 中断传送方式 8.3.1 8086的中断分类 8.3.2 中断向量表 8.3.3 中断过程 8.3.4 中断优先级和中断嵌套 8.3.5 中断处理过程 中断的相关概念 中断是CPU和外设进行数据传送的有效办法。它可以避免因反复查询外设状态而浪费的时间,从而提高CPU的效率。 中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作。 中断源——引起中断的事件。 外部中断(硬件中断)——由外设控制器或协处理器引起的中断。 内部中断(软件中断)——由程序中安排的中断指令INT产生的中断,或由CPU的某些错误结果产生的中断。 8080/8088的中断源如图8.3所示。 8.3.1 8086的中断分类 软件中断 硬件中断 1.软件中断 软件中断又称内中断。 它通常由三种情况引起: 由中断指令INT引起; 由于CPU的某些错误引起; 为调试程序(DEBUG)设置的中断。 (1)中断指令INT引起的内中断 CPU执行完一条INT n指令后,会立即产生中断,并调用系统中相应的中断处理程序来完成中断功能,n指出中断类型号。 INT指令可以指定0~0FFH中的任何类型号。 除系统占用的类型号之外,用户还可利用

文档评论(0)

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

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

1亿VIP精品文档

相关文档