微机的技术第06章节中断修正稿.ppt

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

6.4.5 PC机中断程序设计 1)主程序 保存原中断向量 设置自己的中断向量 初始化堆栈指针 设置8259A的中断屏蔽字(其他的已由操作系统设置) STI 2)中断服务程序 保存所用到的寄存器内容 中断服务程序主体 恢复进入时保存的寄存器内容 发EOI命令(必要时可提前) STI(必要时可提前) IRET 中断程序举例 PC机中主8259A的I/O地址为20H和21H,中断向量码为08H; 中断请求从IR6引入,故中断类型号为0EH; 主程序如下: ;保存原来的中断向量 mov ah,35h mov al,0eh ;中断类型码 int 21h ;取原中断向量(在es:bx中) mov save_ip,bx ;保存原来的中断向量 mov save_cs,es ;设置自己的中断向量 push ds mov dx,offset my_int mov ax,seg my_int mov ds,ax ;DS:DX的内容为my_int的首地址 mov ah,25h mov al,0eh int 21h ;设置自己的中断向量 pop ds ;初始化堆栈指针 mov sp,my_stack_top ;设置8259A的中断屏蔽字 in al,21h and al ;开放IR6中断 out 21h,al sti …… 其他代码放在这里 子程序如下: my_int proc far pusha … 中断服务程序主体 … popa mov al,20h;EOI命令 out 20h,al;写OCW2 sti iret my_int endp 8088的中断向量表 向量号255的CS值 用户中断 (向量号255) 3FCH 向量号255的IP值 …… 向量号2的CS值 非屏蔽中断 (向量号2) 008H 向量号2的IP值 向量号1的CS值 单步中断 (向量号1) 004H 向量号1的IP值 向量号0的CS值 除法错中断 (向量号0) 000H 向量号0的IP值 CAS0 IR0 CAS1 IR1 CAS2 IR2 IR3 INTA IR4 IR5 INT IR6 IR7 SP/EN CAS0 INTA CAS1 CAS2 INT IR0 IR1 SP/EN IR7 CAS0 IR0 CAS1 IR1 CAS2 IR2 IR3 INTA IR4 IR5 INT IR6 IR7 SP/EN INTA INTR +5V 8259级联工作示意图 8259级联工作示意图 8259级联工作示意图 写ICW1 A0=0,D4=1 写ICW2 A0=1 SNGL=1 IC4=1 写ICW3 A0=1 写ICW4 A0=1 是 否 是 否 按顺序对A0=1端口写入命令字 8259A芯片的初始化流程 8087中断请求 RAM奇偶错 I/O通道检查错 NMI屏蔽寄存器屏蔽位 8253定时器 键盘 未用 异步通信卡(辅) 异步通信卡(主) 硬盘 软盘 并行打印机 NMI INTR 0 1 2 3 4 5 6 7 优 先 级 8088 CPU 8259A I/O 通 道 2. 与处理器接口 A0 RD* WR* CS* 功能 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 × 1 1 0 × × × 1 写入ICW1、OCW2和OCW3 写入ICW2~ICW4和OCW1 读出IRR、ISR和查询字 读出IMR 数据总线高阻状态 数据总线高阻状态 3. 中断级连 一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259A 级连时,主8259A的三条级连线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2 每个从8259A

文档评论(0)

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

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

1亿VIP精品文档

相关文档