- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.4.1 DMA传送过程 CPU对DMA控制器进行初始化设置 外设、DMAC和CPU三者通过应答信号建立联系:CPU将总线交给DMAC控制 DMA传送 DMA读存储器:存储器 → 外设 DMA写存储器:存储器 ← 外设 自动增减地址和计数,判断传送完成否 示意图 DMA传送示意 返回 7.4.2 DMA控制器 8237A每个DMA通道有4种工作方式 单字节传送方式 每次DMA传送时仅传送一个字节 数据块传送方式 连续地传送数据,直到规定的字节数传送完 请求传送方式 请求有效,连续传送数据 请求无效,DMA传送被暂时中止 再次有效,DMA传送又继续 级连方式 多个DMA控制器连接起来扩展DMA通道 教学要求 理解I/O接口典型结构特点和I/O端口编址方式 掌握输入输出指令 掌握DOS平台的汇编语言编程 熟悉无条件传送,开关输入和LED输出 掌握查询传送方式的特点和编程 熟悉中断传送方式的过程 熟悉IA-32处理器主要中断类型 掌握可屏蔽中断和中断向量表 掌握内部中断服务程序的编写 理解中断控制器的作用 熟悉可屏蔽中断服务程序的编写 理解DMA传送方式的特点 第7章 输入输出接口 第7章 习题 7.1 简答题(1、2、3、8、10) 7.2 判断题(4、5、6、7、8) 7.3 填空题(2、3、6、7、9) 7.7 7.8 7.9 7.12 7.14 7.18 7.20 微机原理与接口技术--基于IA-32处理器和32位汇编语言·第4版 * 第7章 输入输出接口 * 微机原理与接口技术--基于IA-32处理器和32位汇编语言·第4版 * 第7章 输入输出接口 * 溢出异常程序-32位控制台 溢出异常程序-32位控制台 END 2. 外部中断 非屏蔽中断 外部通过非屏蔽中断NMI请求信号提出的中断 处理器在当前指令执行结束予以响应 非屏蔽中断的中断向量号是2 非屏蔽中断主要用于处理系统的意外或故障 可屏蔽中断 外部通过可屏蔽中断INTR请求信号提出的中断 允许可屏蔽中断的条件下、当前指令执行结束予以响应 输出可屏蔽中断响应信号INTA*,产生可屏蔽中断响应总线周期,读取中断向量号 需要中断控制器负责处理中断优先权排队等管理工作 可屏蔽中断主要用于与外设进行数据交换 中断标志 IF=1,处理器开中断 可以响应,允许中断,中断开放 IF=0,处理器关中断 不能响应,禁止中断,中断被屏蔽 关中断的情况 系统复位后 任何一个中断被响应后 执行关中断指令CLI后 开中断的方法 执行开中断指令STI 执行中断返回指令IRET恢复中断前IF状态 3. 中断和异常的响应过程 标志寄存器压入堆栈,保护标志位;被中断指令的逻辑地址压入堆栈,保护断点 如果有错误代码,将其压入堆栈 实地址方式的异常不返回错误代码 根据向量号获得中断服务程序(中断或异常的处理程序)的段选择器和指令指针 对于中断,设置IF为0,禁止可屏蔽中断 控制转移至中断服务程序入口地址,开始执行中断或异常处理程序 4. 中断描述符表和中断向量表 保护方式下,使用中断描述符表IDT 中断服务程序由中断描述符指向 每个中断描述符包含8个字节,保存 16位段选择器和32位偏移地址 中断特权层 实地址方式下,使用中断向量表 物理地址00000H,对应向量号从0开始 依次每4个字节安排一个中断向量 含有16位段地址和16位偏移地址的逻辑地址 低字部分是偏移地址、高字部分是段地址 256个中断占用1KB区域,形成中断向量表 示意图 实方式的中断向量表结构 返回 7.3.3 内部中断服务程序 编写内部中断服务程序与编写子程序类似 利用过程定义伪指令PROC/ENDP 第1条指令通常为开中断指令STI 最后用中断返回指令IRET 通常采用寄存器传递参数 主程序需要调用中断服务程序 调用前,需要设置中断向量表对应项 利用INT n指令调用中断服务程序 设置中断向量表项:AH=25H号DOS功能调用 获取中断向量表项:AH=35H号DOS功能调用 〔例7-5〕内部中断服务程序-1 ; 数据段 intoff word ? ; 用于保存原中断服务程序的偏移地址 intseg word ? ; 用于保存原中断服务程序的段基地址 intmsg byte A Instruction Interrupt !,0dh,0ah,0 ; 字符串(以0结尾) ;代码段 mov ax,3580h ; 获取系统的原80H中断向量表项 int 21h mov intoff,bx ; 保存偏移地址 mov intseg,es ; 保存段基地址 35H调用 〔例7-5〕内部中断服务程序-2 push ds mov dx,offset new80h mov ax,seg new80h mov d
文档评论(0)