微机接口--中断控制使用.ppt

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

第7章 中断控制接口 教学重点 8088 CPU的中断系统 8259A的中断工作过程和工作方式 中断服务程序的编写 7.1 8088中断系统 8088的中断系统采用向量中断机制 一共可处理256个中断源,中断向量编号为0~255,用以区别不同的中断。 借助专用的中断控制器 Intel 8259A对系统中的可屏蔽中断资源(INTR)进行扩充和管理, 8259A 的功能有: 扩充系统的可屏蔽中断资源(每片可管理8个中断,级联后最多可管理64个中断) 实现中断优先级比较 实现中断源的识别(通过向总线送中断矢量) 7.1.1 8088的中断类型 8088的中断分类 内部中断——内部机制产生 除法错中断(0号)——除运算结果溢出时产生 指令中断(n号)——执行int n指令后产生(操作码CDH) 断点中断(3号)——执行int 3指令(单字节指令操作码CCH )用于在调试中设置断点,程序遇断点则中断 溢出中断(4号)——执行into指令,且前面运算有溢出(OF=1)时产生 单步中断(1号)——TF标志置1后,每执行一条子指令将发生一次 外部中断——外部引脚触发 非屏蔽中断(外设提供向量号)——触发INTR引脚产生 可屏蔽中断(2号)—— 触发NMI引脚产生 1. 内部中断 内部中断是由于8088内部执行程序出现特殊情况而引起的中断 除法错中断: 向量号为 0 指令中断(int n): 向量号为 n 断点中断(int 3 ): 向量号为 3 溢出中断(into ) : 向量号为 4 单步中断: 向量号为 1 2. 外部中断 外部中断是由于8088外部通过CPU引脚提出中断请求而引起的中断 非屏蔽中断(NMI): 向量号为 2 外部通过非屏蔽中断NMI请求,必须响应 非屏蔽中断主要用于处理系统的意外或故障(如奇偶校验或协处理器运算错误等) 可屏蔽中断(INTR):向量号由中断控制器提供 外部通过可屏蔽中断 INTR 请求,由标志位 IF 控制是否响应;响应时将产生有效的 –INTA 信号 可屏蔽中断主要用于外设中断请求(请求交换数据等服务) 中断标志IF的状态 IF=0:可屏蔽中断不会被响应(禁止中断,关中断,中断屏蔽) 系统复位时 IF=0 任何一个中断被响应,将使IF=0 执行指令CLI,可使IF=0 IF=1:可屏蔽中断会被响应(允许中断,开中断,中断开放) 执行指令STI,可使IF=1 执行指令IRET后,IF 将恢复为中断前的状态(即IF=1) 7.1.2 8088的中断响应过程 CPU查询各中断的先后顺序,决定了各中断源的优先级别: 软件中断 除法错中断 指令中断 溢出中断 非屏蔽中断 可屏蔽中断 单步中断 8088的中断响应过程 8088的中断响应过程(续) 8088的中断响应过程(续) 8088各种中断源的优先权,实际上是指被识别的先后顺序 多种中断同时请求时,最先响应的则可能是单步中断或 NMI中断 7.1.3 8088的中断向量表 弄清几个概念: 中断向量号N(中断类型号) 中断向量(中断服务程序的入口地址) 中断向量表 中断向量存放的首址:N×4 8088的中断向量和中断向量表 中断向量号——区别不同中断源的编号0~255 ,也称中断向量号。 中断向量——指示中断服务程序的入口,该地址包括:偏移地址IP 、段地址CS 。每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节(低对低,高对高)。 中断向量表——8088 微处理器从物理地址000H开始到3FFH(1KB),依次安排256个中断向量。所占用的1KB区域,称中断向量表。 N号中断向量存放的首地址——N×4 7.2 内部中断服务程序 编写内部中断服务程序与编写子程序类似 利用过程定义伪指令PROC/ENDP 第1条指令通常为开中断指令STI 最后用中断返回指令IRET 通常采用寄存器传递参数 主程序需要调用中断服务程序 使用前,需要重新设置中断向量(入口地址) 利用INT n指令调用中断服务程序 例7.1 内部中断服务程序 编写: 80H 号中断服务程序 功能:通过BIOS功能调用INT 10H,显示以“0”结尾的字符串。 入口参数:DS:DX存字符串缓冲区首地址(段地址:偏移地址)。 数据段 intoff dw ? ;用于保存原中断向量将来恢复 intseg dw ? ;用于保存原中断向量将来恢复 intmsg db ‘A Instruction Interrupt !’ db 0dh,0ah,0 ;要显示的信息 保存中断向量 mov ax, 35 80h ;读出原中断向量 int 21h mov intoff, bx ;保存偏移地址 mov intseg,

文档评论(0)

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

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

1亿VIP精品文档

相关文档