ch6输入输出和中断技术内容摘要:
个设备产生中断。 识别中断源有两个方法: 软件查询。 将中断信号从数据总线读入,用程序进行判别,如教材图。 中断矢量法。 由中断源提供中断类型号, CPU根据类型确定中断源。 ( 8086/8088即采用此种方法) )中断判优 多个中断源产生中断, CPU首先为谁服务。 ——中断优先级排队问题。 中断优先级控制要处理两种情况: 对同时产生的中断:应首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则处理; 对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断 ——即允许中断嵌套。 中断优先级的控制方法 硬件判优 ——链式判优、并行判优(中断向量法) 软件判优 ——顺序查询中断请求,先查询的先服务(即先查询的优先级别高) 通常将 中断判优 与 中断源识别 合并在一起进行处理。 x86系统中,这项任务由 PIC和 CPU共同完成。 INTAin CPU INTA INTR 外设 1 外设 2 外设接口 1 菊花链 逻辑电路 外设接口 2 外设 3 外设接口 3 ≥1 菊花链 逻辑电路 菊花链 逻辑电路 ┇ IREQ IREQ IREQ 中断确认 链式判优电路原理图(教材图 ) INTAin INTAin 中断确认 中断确认 菊花链逻辑电路 INTAin IREQ INTR amp。 =1 ≥1 INTAout DB 三态门 中 断 向 量 码 E 外设接口 中断确认 菊花链 逻辑电路 3)中断响应 在每条指令的最后一个时钟周期, CPU检测INTR或 NMI信号。 若以下条件成立,则 CPU响应中断: 当前指令执行完。 对 INTR, 还应满足以下条件 当前指令是 STI和 IRET,则下条指令也要执行完。 当前指令带有 LOCK、 REP等指令前缀时,则把它们看成一个整体,要求完整地执行完; 对 INTR, CPU应处于开中断状态,即 IF=1; 当前没有复位 (RESET)和保持 (HOLD)信号。 若 NMI和 INTR 同时发生,则首先响应 NMI。 3)中断响应(续) CPU中断响应时,要做下述三项工作: 向中断源发出 INTA中断响应信号; 断点保护,包括 CS、 IP和 PSW( FLAGS)。 这主要是保证中断结束后能返回被中断的程序。 获得中断服务程序首地址(入口)。 如何得到中断处理程序的首地址。 固定入口法 中断向量法 ——常用 4)中断处理(中断服务) 中断服务子程序特点 为 ”远”过程(类型为 FAR) 要用 IRET指令返回 中断服务子程序要做的工作 保护现场 (PUSH reg’s) 开中断 (STI) 进行中断处理 恢复现场 (POP reg’s) 中断返回 (IRET) 5)中断返回 执行中断返回指令 IRET IRET指令将使 CPU把堆栈内保存的断点信息弹出到 IP、 CS和 FLAG中,保证被中断的程序从断点处能够继续往下执行。 IPL IPH CSL CSH FLAGL FLAGH SP IPL IPH CSL CSH FLAGL FLAGH SP IP CS FLAG 进入中断服务程序时 中断返回后 8088的中断系统 与中断有关的控制线为: NMI、 INTR、 INTA 8088系统的中断源 内部中断 除法溢出:类型号 0,商大于目的操作数所能表达的范围时产生。 单步中断:类型号 1, TF=1时产生(当前指令需执行完) 断点中断:类型号 3,这是一个软件中断,即 INT 3指令。 溢出中断:类型号 4,这是一个软件中断,即 INTO指令。 软件中断:即 INT n指令,类型号 n(0255)。 外部中断 非屏蔽中断 NMI:类型号 2,不可用软件屏蔽, CPU必须响应它。 可屏蔽中断 INTR:类型号由 PIC提供。 IF=1时 CPU才能响应。 NMI INTR 中断逻辑 软件中断指令 溢出中断 除法错 单步中断 非屏蔽中断请求 中断控 制器 8259A PIC 8086/8088CPU内部逻辑 断点中断 8086/8088中断源类型 可 屏 蔽 中 断 请 求 n 4 3 0 1 2 中断源的识别 8088系统采用中断类型码来识别不同的中断源, 每个中断源都有一个与它相对应的中断类型码。 溢出、断点、除法溢出、单步、非屏蔽中断的类型码为 固定值 软件中断的类型码 由指令给出 可屏蔽中断的类型码 由 PIC给出 CPU响应 INTR中断时,会产生两个中断响应总线周期 (教材图 ),要求 PIC在第 2个中断响应总线周期把中断类型码放到数据总线上,供 CPU读入。 中断向量表( IVT) 存放各类中断的 中断服务程序的入口地址(段和偏移) ——中断向量 表的地址位于内存的 00000H~ 003FFH,大小为 1KB,共 256个中断向量 每个中断向量占用 4 Bytes,低字为段内偏移,高字为段基址 根据中断类型号 获得中断服务程序入口的方法 : (n为 中断类型号 ) 中断向量在 IVT中的存放地址= 4 n 中断向量表的初始化 初始化 ——将中断服务程序的入口地址放入向量表 例:中断类型码为 48H的中断处理子程序的名字为 int48h,编写程序段将该中断处理子程序的入口地址放入向量表。 中断向量表的初始化 CLI MOV AX, 0 MOV DS, AX MOV SI, 48H*4 MOV AX, OFFSET int48h MOV [SI], AX MOV AX, SEG int48h MOV [SI+2], AX STI 8086/8088 CPU的中断响应过程 内部中断响应过程 无 INTA周期 中断类型码固定或由指令给出 响应过程主要步骤: ① PUSH FLAG ② IF=0 ③ PUSH CS ④ PUSH IP ⑤ 取中断向量送入 IP和 CS 中断响应过程(续) 外部中断响应过程 非屏蔽中断,与内部中断响应过程类似 可屏蔽中断 (时序见教材图 ) ① INTA( 1) , PIC进行优先级排队判优处理 ② INTA( 2) , PIC把中断类型码放到 DB上 , CPU读入 ③ PUSH FLAG ④ IF=0 ⑤ PUSH CS ⑥ PUSH IP ⑦ 取中断向量送入 IP和 CS 与内部中断一样 8088系统中各中断的优先级 优先级从高到低顺序如下: 内部中断 NMI INTR 单步中断 N Y N Y N N N N N Y Y 执行指令 执行完 否 ? 取指令 IF=1? 内部中 断 ? NMI ? INTR ? TF=1 ? 类型码 =0~ 255 类型码 =2 类型码 =1 中断响应, 读回类型码 FLAG入栈 TEMP←TF TF=TF=0 CS、 IP入栈 计算向量表地址 高字 →CS 低字 →IP 执行中断 服务程序 NMI? TEMP= 1? 转入中断服务程序 恢复 CS和 IP 恢复 FLAGS 返回被中断 的程序 Y Y Y Y N IRET指令的操作 8086/8088的中断处理流程 NMI、 INTR、单步和除法错中断同时产生时的中断处理过程 DIV TF=1 IF=1 INTR NMI PUSH FLAGS、 CS、 IP CLEAR IF amp。 TF,中断入口 →CS:IP 除法错 NMI(IF、 TF = 0) PUSH FLAGS、 CS、 IP CLEAR IF amp。 TF,中断入口 →CS:IP NMI中断处理程序 除法错中断处理程序 (IF、 TF = 0) 返回 执行下条指令 识别出 INTR (IF、 TF = 1) 返回 INTR仍然有效 继续单步执行程序 INTR中断处理程序 INTR PUSH FLAGS、 CS、 IP CLEAR IF amp。 TF,中断入口 →CS:IP 单步 (IF、 TF = 0) PUSH FLAGS、 CS、 IP CLEAR IF amp。 TF,中断入口 →CS:IP 单步中断处理程序 (IF、 TF = 0) 返回 (IF、 TF = 1) 返回 可编程中断控制器 8259A PIC, Programmable Interrupt Controller 可对 8个中断源实现优先级控制 可扩展至对 64个中断源实现优先级控制 可编程设置不同工作方式 根据中断源向 x86提供不同中断类型码 引脚分配及功能见教材图 . 8259A的内部结构 8259A的内部结构( 教材图 ) 中断请求寄存器 IRR 保存从 IR0~ IR7来的中断请求信号,某位 =1表示对应的 IRi有中断请求 中断服务寄存器 ISR 保存所有正在服务的中断源,某位 =1表示对应的 IRi中断正在被服务 中断屏蔽寄存器 IMR 存放中断屏蔽字,某位 =1表示对应。ch6输入输出和中断技术
相关推荐
ue Continued…. •Sugary foods are not only to blame. •Starches, such as bread amp。 cereal, also cause acids to form. •If you snack often, your teeth may be prone to decay. • Plaque also produces
1. class IfTry2 2. { 3. public static void main(String[ ] args) 4. { 5. int a1=59。 6. if(a1=60) 7. { 8. (你及格了 !)。 9. } 10. else 11. { 12. (你没及格 ,请继续努力 !)。 13. } 14. } 15. } 25 if语句中内嵌的语句 1或语句 2又是
the jurisdiction of different ministries EFile Court Prosecutor Legal aid Probation Police Prison Tax and Customs Board Bailiff EFile A bit More Detailed Explanation of the Exhange of Data via EFile
造成人为的动脉狭窄。 颈动脉阻断时间 1828min,平均 21min。 神经症状改善结果 • 全组一例反复发作 TIA的患者在术后第二天出现迟发型对侧肢体偏瘫,经内科保守治疗后症状逐渐减轻; • 2例患脑卒中一月以内患者,术后 2d意识及肢体活动功能显著改善; 8例既往有脑卒中患者,肢体运动功能均较术前有一定改善。 • 12例有 TIA症状的患者,除 1例术后中风外,其余症状缓解率达 100%