- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课件8259
第9章 8088中断系统 8088的中断系统采用向量中断机制 能够处理256个中断 用中断向量号0 ~ 255区别 可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优先权管理 8088的中断类型 内部中断 除法错中断 指令中断 溢出中断 单步中断 外部中断 非屏蔽中断 可屏蔽中断 可屏蔽中断 外部通过可屏蔽中断请求信号向处理器提出的中断,处理器在允许可屏蔽中断的条件下,在当前指令执行结束予以响应,同时输出可屏蔽中断响应信号,这个中断就是可屏蔽中断 8088的可屏蔽中断请求和响应信号分别是INTR和INTA*;由IF标志控制可屏蔽中断是否允许响应;向量号来自外部中断控制器 8088通常需要配合中断控制器8259A共同处理可屏蔽中断 可屏蔽中断主要用于主机与外设交换数据 中断标志IF的状态 IF=0:可屏蔽中断不会被响应 关中断、禁止中断、中断屏蔽 系统复位,使IF=0 任何一个中断被响应,使IF=0 执行指令CLI,使IF=0 IF=1:可屏蔽中断会被响应 开中断、允许中断、中断开放 执行指令STI,使IF=1 执行指令IRET恢复原IF状态 8259A中断控制器 Intel 8259A是可编程中断控制器PIC 用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中断 8259A的基本功能 一片8259A可以管理8级中断,可扩展至64级 每一级中断都可单独被屏蔽或允许 在中断响应周期,可提供相应的中断向量号 8259A设计有多种工作方式,可通过编程选择 8259A的内部结构和引脚 1. 中断控制 中断请求寄存器IRR 保存8条外界中断请求信号IR0~IR7的请求状态 Di位为1表示IRi引脚有中断请求;为0表示无请求 中断服务寄存器ISR 保存正在被8259A服务着的中断状态 Di位为1表示IRi中断正在服务中;为0表示没有被服务 中断屏蔽寄存器IMR 保存对中断请求信号IR的屏蔽状态 Di位为1表示IRi中断被屏蔽(禁止);为0表示允许 2. 与处理器接口 3. 中断级连 一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259A 级连时,主8259A的三条级连线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2 每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR 主8259A的INT线连至CPU的中断请求输入端 SP*/EN*在非缓冲方式下,规定该8259A是主片(SP*=1)还是从片(SP*=0) 8259A的中断过程 8259A的工作方式 1. 设置优先权方式 普通全嵌套方式 8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、IR2、……IR7 中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其向量号送上数据总线,对应ISR的Di位置位,至到中断结束(ISR的Di位复位) 在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套 特殊全嵌套方式 (1) 普通EOI循环方式: 当任何一级中断被处理完后,CPU给8259A回送普通EOI命令,8259A接收到这一命令后将ISR寄存器中优先级最高的置“1”位清“0”,并赋给它最低优先级,而将最高优先级赋给原来比它低一级的中断请求,其他中断请求的优先级别以循环方式类推。 (2) 自动EOI循环方式:任何一级中断响应后,在中断响应总线周期中,由第2个中断响应信号 INTA 的后沿自动将ISR寄存器中相应位清“0”,并立即改变各级中断的优先级别,改变方案与上述普通EOI循环方式相同。 采用这种自动EOI循环方式与前述的自动EOI方式一样,有可能出现“重复嵌套”现象,使用中要特别小心,否则有可能造成严重后果。 (3) 特殊EOI循环方式: 前述的普通EOI循环和自动EOI循环都是将最低优先权赋给刚刚处理完的中断请求。特殊EOI循环方式具有更大的灵活性,它可根据用户要求将最低优先级赋给指定的中断源。用户可在主程序或中断服务程序中利用置位优先权命令把最低优先级赋给某一中断源IRi,于是最高优先级便赋给IRi+1,其他各级按循环方式类推。例如,在某一时刻,8259A中的ISR寄存器的第2位和第6位置“1”,表示当前CPU正在处理第2级和第6级中断。它们以嵌套方式引入系统,如果当前CPU正在执行优先级高的第2级中断服务程序,用户在该中断服务程序中安排了一条优先权置位指令,将最低级优先权赋给IR4,那么待这条指令执行完毕,各中断源的优先级便发生变化,IR4具有最低优先级,IR5则具有最高优先级,但这时第2级中断服务程序并没有结束,因此,ISR寄存器中仍保持第2位和第6位置“1”,只是它们的优先级别已经分别被
文档评论(0)