西电微机原理.ppt

  1. 1、本文档共709页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
概念:中断向量表 ┇ ┇ 00000H 003FFH 1KB (256个中断向量×4B) 微处理器响应任何中断都将转向中断服务程序。如何找到中断服务程序的入口地址?实模式下使用—— 入 口 地 址 255型中断向量 254型中断向量 ? 2型中断向量 1型中断向量 0型中断向量 3FCH 3F8H ? 08H 04H 00H 段基址(CS) 4n+3 n 型中断程序所在 4n+2 偏移地址(IP) 4n+1 n型中断程序入口 4n+0 中断向量表 n型中断向量 由类型号n对应到中断向量表中,从而由表中内容得到中断服务程序的入口地址。(注意:是FAR调用) 中断向量表例 例:中断类型号为27H 中断向量指针的低地址= 27H ×4= 9CH 中断向量指针的高地址= 27H ×4+2= 9EH 即该中断向量存放在0000H:009CH开始的4个连续单元中。如果这4个单元中的内容如下: 0000:009C 2AH 0000:009D 43H 0000:009E 65H 0000:009F 87H 则该中断类型号27H的中断向量(中断服务程序入口地址)的逻辑地址是8765H:432AH,即(CS)=8765H,(IP)=432AH;物理地址是8B97AH。 前5个是专用中断 类型0:除数为0中断 类型1:单步中断 类型2:NMI中断 类型3:断点中断 类型4:溢出中断 保留的中断(类型号05-3FH):这是Intel公司为软件、硬件开发保留的中断类型,大部分用于系统中断,如20H-3FH为DOS中断调用。 供用户定义的中断(类型号40H-FFH):使用用户自己定义的中断,用户必须把该中断的中断向量填写到中断向量表中。 中断向量表的初始化 将用户自定义的中断服务程序入口地址放入向量表 例:将中断向量码为48H的服务程序入口地址放入向量表 MOV AX,0000H MOV DS,AX ; DS清零 MOV SI,0120H; 48H*4 MOV BX,OFFSET INT1 MOV [SI],BX MOV BX,SEG INT1 MOV [SI+2],BX 外部中断响应的一般过程 中断请求 中断判优及中断源识别 中断响应 中断处理(服务) 中断返回 中断判优 要解决的问题 对同时产生的中断: 首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则 对非同时产生的中断: 低优先级的中断程序允许被高优先级的中断源所中断 中断响应 向中断源发出INTA中断响应信号; 保护断点。包括FLAGS、 CS和IP 获得中断服务程序入口地址 中断处理 中断服务子程序的特点: 为“远过程” 用IRET指令返回 中断服务子程序的工作过程 保护现场 开中断(STI) 中断处理 关中断(CLI) 恢复现场 中断返回 中断控制器8259A 可屏蔽中断 8259A的引脚 8259A内部结构 8259A的工作方式 8259A的级连 8259A的初始化编程 中断程序设计的一般过程和方法 首先中断请求信号INTR由外部硬件(如8259A芯片)产生,并送到8088的INTR引脚上。如果IF=1,则在CPU完成正在执行的指令后,便开始响应中断,步骤如下: ⑴ CPU读取由外部硬件提供的中断类型号n (如8259A芯片通过数据总线传送) 。CPU 通过INTA发中断响应信号给接口,并启动中断过程。这个响应信号将使发中断请求的接口把一个字节的中断类型号通过数据总线送给CPU; ⑵ 按先后顺序把PSW(即FR)、CS和IP压入堆栈; ⑶ 清除IF和TF标志; ⑷ 把4×n +2的字存储单元中的内容读入 CS中,把4×n 的字存储单元中的内容读入 IP中,即得到中断服务程序入口地址; ⑸ CPU 从新的CS:IP值开始执行中断服务程序; ⑹ 中断服务程序完毕后返回。 可屏蔽中断——过程 如何设计中断服务子程序? (1)选择一个中断矢量。如果是硬件中断,则要使用硬件决定的中断矢量。如果是采用软件中断,即用INT n指令的方式,则可在系统保留给用户的中断矢量号中选一个中断矢量。 (2)将中断子程序的入口地址置入中断矢量表的相应表项中。用数据传送指令将中断服务子程序的入口的偏移地址放在中断矢量表4 × n的字单元中,将中断服务子程序的入口的段地址放在中断矢量表4 × n+2的字单元中。 (3)编写中断服务子程序 可屏蔽中断——服务子程序 可 屏 蔽 中 断 请 求

文档评论(0)

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

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

1亿VIP精品文档

相关文档