网站大量收购闲置独家精品文档,联系QQ:2885784924

汇编语言程序设计-第八章_输入输出程序设计.ppt

汇编语言程序设计-第八章_输入输出程序设计.ppt

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

河南师范大学计算机与信息技术学院 第八章 输入输出程序设计 本章内容提要 8.1 I/O设备的数据传动方式 8.1.1 CPU与外设 I/O接口电路中的寄存器 CPU与外设数据传送方式 8.1.2 直接存储器存取(DMA)方式 DMA工作原理 DMA传送步骤 8.2 程序直接控制I/O方式 8.2.1 I/O端口 8.2.2 I/O指令 8.2.3 I/O程序举例 8.3 中断传送方式 中断的相关概念 8.3.1 8086的中断分类 1. 软件中断 (1)中断指令INT引起的内中断 (2)处理CPU某种错误的中断 (3)为调试程序(DEBUG)设置的中断 2. 硬件中断 可屏蔽中断 中断屏蔽寄存器 控制CPU的中断允许标志IF 中断命令寄存器 8.3.2 中断向量表 中断操作步骤 为中断类型N设置中断向量 使用DOS功能调用(21H)存取中断向量 8.3.3 中断过程 8.3.4 中断优先级和中断嵌套 8259A的中断命令寄存器控制优先级 中断嵌套 8.3.5 中断处理程序 中断响应的特殊情况 中断处理子程序 中断程序设计举例 练习与作业 I/O接口电路示意图 表8.1 I/O端口地址分配 例8.1 发声程序-1 例8.1 发声程序-2 例8.1 发声程序-3 图8.1 设备控制器 程序查询I/O方式 例8.2 打印字符程序-1 例8.2 打印字符程序-2 例8.2 打印字符程序-3 图8.2 打印机的状态寄存器和控制寄存器 例8.3 轮流查询-1 例8.3 轮流查询-2 图8.3 80X86中断源 图8.5 中断向量表 表8.2 中断向量表地址分配 图8.6 中断操作步骤 例8.4 -1 例8.4 -2 图8.7 中断过程 图8.8 正常优先级方式下的典型中断序列 8086规定的中断优先级次序为: 优先级 高 软件中断(除法错,INTO ,INT) 非屏蔽中断(NMI) 可屏蔽中断(INTR) 低 单步中断 可屏蔽中断的优先权分为八级,正常情况下,优先级次序是: IR0 , IR1 , IR2 , IR3 , IR4 ,IR5 , IR6 , IR7 定时器 打印机 优先级高 低 8259A的中断命令寄存器的第6、7位控制各种中断请求的优先级次序。 R SL 0 0 正常优先级方式 0 1 清除由L2~L0指定的中断请求 1 0 各中断优先级依次左循环一个位置 1 1 各中断优先级依次循环到由L2~L0指定的中断 请求到达最低优先级位置上 ;使优先级次序再左循环一个位置 MOV AL ,OUT 20H , AL ;IR6 , IR7 , IR0 , IR1 , IR2 ,IR3 ,IR4 , IR5 中断嵌套:正在运行的中断处理程序,又被其他中断源中断的情况。 80x86没有规定中断嵌套的深度(中断程序又被中断的层次),实际受堆栈容量的限制。 一个中断处理程序,在开中断的情况下,可以被优先级高于它的中断源中断。 只有发出了EOI命令,清除正在执行的中断请求,才可以响应同级或低级的中断。 如图8.8所示:正常优先级方式下,优先级中断和中断嵌套发生时的处理过程。 主程序为响应中断所做的准备工作以及硬件(包括CPU和外设接口)自动完成以下动作: 注意:设备发到CPU的中断请求信号在时间上是随机的,只要未被屏蔽的设备本身的状态是准备好或空闲的,它就会向CPU请求中断,如果此时CPU正在执行一条指令,那么要等到这条指令执行完后,才响应中断。 加封锁的指令(如LOCK MOV AX , BX)应看作一条指令; 对加重复前缀的指令(如REP MOVSB)要作为一个整体来处理,执行一次重复串指令即可响应中断; 对MOV、POP指令,如果处理对象是段寄存器,那么执行完本条指令后,接着再执行一条指令才响应中断。 对STI和IRET指令,也要在该指令执行完后,再执行一条指令才响应中断。 中断处理子程序的编写步骤: 保存寄存器内容; 如允许嵌套,则开中断(STI); 处理中断; 关中断(CLI); 送中断结束命令(EOI)给中断命令寄存器; 恢复寄存器内容; 返回被中断的程序(IRET)。 注意:CPU产生一次中断,I/O设备只完成一个字节(或字)的输入输出,所以中断处理程序所用的指针变量或数据变量一般应设置存储单元来保存。 例8.5 响铃 P300-303 例8.6 键盘输入、打印机输出 P303-310 例8.7 P310-313 除数为0的中断处理程序 P313-314 习题 练习: 8.5、8.6 提交作业: 8.12 处理器

文档评论(0)

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

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

1亿VIP精品文档

相关文档