“微机原理与接口技术”第七章习题与解答 P302习题4、8、10、14、15 4.CPU响应中断的条件是什么,简述中断处理过程。 答:CPU响应外部中断的条件: (1)接收到外设提出的有效中断请求信号: (2)CPU开放中断,即中断标志IF是“1”: (3)CPU执行完当前指令。 中断处理过程包含五个步骤:中断请求、中断判优、中断响应、中断处理和中断返回。 (I)中断请求:中断源发出中断请求信号,送到CPU的INTR或MI引脚: (2)中断判优:根据中断优先权,找出中断请求中级别最高的中断源,允许中断嵌套: (3)中断响应:在每条指令的最后一个时钟周期,CPU检测INTR或MT信号,在满足 一定条件下,CPU进入中断响应周期,自动完成:向中断源发出INTA中断响应信 号、关中断(清IF)、断点保护(CS、IP及PSW自动压栈)、形成并转向中断入口 地址: (4)中断处理:由中断服务程序完成,包括保护现场:开放中断:中断服务程序:关 中断:恢复现场:开放中断;中断返回IRET等: (5)中断返回:执行中断返回指令IRET,CPU自动返回到断点地址(弹出堆栈内保存 的断点信息到IP、CS和FLAG中),继续执行被中断的程序。 8.假定中断类型号15的中断处理程序的首地址为ROUT15,编写主程序为其建立一个中断 向量。 答1: PUSH ES MOV AX,0 MOV ES,AX MOV DI,54H :15H*4 MOV AX,OFFSET OUT15:中断处理程序的偏移→AX CLD STOSW MOV AX,SEG OUT15 :中断处理程序的段地址一AX STOSW POP ES 答2: PUSH DS MOV AX,SEG OUT15 :中断处理程序的段地址→AX MOV DS,AX MOV AX,OFFSET OUT15:中断处理程序的偏移→AX MOV AL,15H :中断类型号 MOV AH,25H :设中断向量 INT 21H POP DS
“微机原理与接口技术”第七章习题与解答 P302 习题 4、8、10、14、15 4.CPU 响应中断的条件是什么,简述中断处理过程。 答:CPU 响应外部中断的条件: (1)接收到外设提出的有效中断请求信号; (2)CPU 开放中断,即中断标志 IF 是“1”; (3)CPU 执行完当前指令。 中断处理过程包含五个步骤:中断请求、中断判优、中断响应、中断处理和中断返回。 (1)中断请求:中断源发出中断请求信号,送到 CPU 的 INTR 或 NMI 引脚; (2)中断判优:根据中断优先权,找出中断请求中级别最高的中断源,允许中断嵌套; (3)中断响应:在每条指令的最后一个时钟周期,CPU 检测 INTR 或 NMI 信号,在满足 一定条件下,CPU 进入中断响应周期,自动完成:向中断源发出 INTA 中断响应信 号、关中断(清 IF)、断点保护(CS、IP 及 PSW 自动压栈)、形成并转向中断入口 地址; (4)中断处理:由中断服务程序完成,包括保护现场;开放中断;中断服务程序;关 中断;恢复现场;开放中断;中断返回 IRET 等; (5)中断返回:执行中断返回指令 IRET,CPU 自动返回到断点地址(弹出堆栈内保存 的断点信息到 IP、CS 和 FLAG 中),继续执行被中断的程序。 8.假定中断类型号 15 的中断处理程序的首地址为 ROUT15,编写主程序为其建立一个中断 向量。 答 1: PUSH ES MOV AX,0 MOV ES,AX MOV DI,54H ;15H*4 MOV AX,OFFSET OUT15 ;中断处理程序的偏移→AX CLD STOSW MOV AX,SEG OUT15 ;中断处理程序的段地址→AX STOSW POP ES 答 2: PUSH DS MOV AX,SEG OUT15 ;中断处理程序的段地址→AX MOV DS,AX MOV AX,OFFSET OUT15 ;中断处理程序的偏移→AX MOV AL,15H ;中断类型号 MOV AH,25H ;设中断向量 INT 21H POP DS
10.给定SP=0100H,SS=0500H,PSW=0240H,在存储单元中已有内容为(00024HD=0060H, (00026H=1000H,在段地址为0800H及偏移地址为00A0H的单元中有一条中断指令NT9, 试问执行NT9指令后,SP、SS、P、PSW的内容是什么?栈顶的三个字是什么? 答:执行NT9指令,标志寄存器PSW、下一条指令的段地址CS和指令指针IP的值分 别入栈,PSW中的中断允许标志F和单步标志T℉清0,中断向量表的中断入口地址送 CS和IP,转入中断服务子程序。所以此时SP=0FAH,SS=0500H,CS=1000H,P= 0060H,PSW=0040H。栈顶的三个字是:(0500H0FAHD=00A2H、(0500H:0FCH= 0800H、(0500H0FEHD=0240H 14.系统中有3个中断源,从8259A的IR0、R2、R4端引入中断,以边沿触发,中断类 型号分别为50H、52H、54H,中断入口地址分别为5020H、6100H、3250H,段地址为1000H。 使用完全嵌套方式,普通EOI结束,试编写初始化程序,使CPU能正确响应任何一级 中断:并编写一段中断服务子程序,保证中断嵌套的实现和正确返回。 答:;初始化程序 ;设置中断向量表 MOV AX.1000H :段地址 MOV DS,AX MOV DX,5020H ;偏移地址 MOV AL,50H ;中断类型号 MOV AH.25H INT 21H ;写50H的中断入口地址 MOV DX,6100H ;偏移地址 MOV AL,52H ;中断类型号 INT 21H :写52H的中断入口地址 MOV DX,3250H ;偏移地址 MOV AL,54H ;中断类型号 INT 21H ;写54H的中断入口地址 ;8259A初始化命令字 MOV AL.13H :定义ICW1,单片,边沿触发 OUT 20H.AL MOV AL,50H ;定义ICW2,中断号50H~57I OUT 21H,AL MOV AL.O1H ;定义ICW4,完全嵌套,非缓冲,普通EOI OUT 21H,AL MOV AL.OE6H :定义OCW1,屏蔽IR1,3,5.6,7 OUT 21H,AL :中断服务子程序 PUSH DS :保护现场 PUSH AX PUSH CX PUSH DX
10.给定 SP=0100H,SS=0500H,PSW=0240H,在存储单元中已有内容为(00024H)=0060H, (00026H)=1000H,在段地址为 0800H 及偏移地址为 00A0H 的单元中有一条中断指令 INT 9, 试问执行 INT 9 指令后,SP、SS、IP、PSW 的内容是什么?栈顶的三个字是什么? 答:执行 INT 9 指令,标志寄存器 PSW、下一条指令的段地址 CS 和指令指针 IP 的值分 别入栈,PSW 中的中断允许标志 IF 和单步标志 TF 清 0,中断向量表的中断入口地址送 CS 和 IP,转入中断服务子程序。所以此时 SP=0FAH,SS=0500H,CS=1000H,IP= 0060H,PSW=0040H。栈顶的三个字是:(0500H:0FAH)=00A2H、(0500H:0FCH)= 0800H、(0500H:0FEH)=0240H 14.系统中有 3 个中断源,从 8259A 的 IR0、IR2、IR4 端引入中断,以边沿触发,中断类 型号分别为 50H、52H、54H,中断入口地址分别为 5020H、6100H、3250H,段地址为 1000H。 使用完全嵌套方式,普通 EOI 结束,试编写初始化程序,使 CPU 能正确响应任何一级 中断;并编写一段中断服务子程序,保证中断嵌套的实现和正确返回。 答:;初始化程序 ;设置中断向量表 MOV AX, 1000H ;段地址 MOV DS, AX MOV DX, 5020H ;偏移地址 MOV AL, 50H ;中断类型号 MOV AH, 25H INT 21H ;写 50H 的中断入口地址 MOV DX, 6100H ;偏移地址 MOV AL, 52H ;中断类型号 INT 21H ;写 52H 的中断入口地址 MOV DX, 3250H ;偏移地址 MOV AL, 54H ;中断类型号 INT 21H ;写 54H 的中断入口地址 ;8259A 初始化命令字 MOV AL, 13H ;定义 ICW1,单片,边沿触发 OUT 20H, AL MOV AL, 50H ;定义 ICW2,中断号 50H~57H OUT 21H, AL MOV AL, 01H ;定义 ICW4,完全嵌套, 非缓冲, 普通 EOI OUT 21H, AL MOV AL, 0E6H ;定义 OCW1,屏蔽 IR1,3,5,6,7 OUT 21H, AL ;中断服务子程序 PUSH DS ;保护现场 PUSH AX PUSH CX PUSH DX
STI ;开中断,允许中断嵌套 ;执行中断处理程序 CLI ;关中断 EOI ;中断结束命令 POP DX :恢复现场 POP CX POP AX POP DS IRET :中断返回 15.如外设A1、A2、A3、A4、A5按完全嵌套优先级排列规则,外设A1的优先级最高, A5最低。若中断请求的次序如下所示,试给出各外设的中断处理程序的次序。(假设所有的 中断处理程序开始后就有STI指令) (1)外设A3和A4同时发出中断请求: (2)在外设A3的中断处理中,外设A1发出中断请求: (3)在外设A1的中断处理未完成前,发出EOI结束命令,外设A5发出中断请求 答:外设的中断处理程序的次序为:A3→A1→A3→A4→A5
STI ;开中断,允许中断嵌套 … ;执行中断处理程序 CLI ;关中断 EOI ;中断结束命令 POP DX ;恢复现场 POP CX POP AX POP DS IRET ;中断返回 15.如外设 A1、A2、A3、A4、A5 按完全嵌套优先级排列规则,外设 A1 的优先级最高, A5 最低。若中断请求的次序如下所示,试给出各外设的中断处理程序的次序。(假设所有的 中断处理程序开始后就有 STI 指令) (1)外设 A3 和 A4 同时发出中断请求; (2)在外设 A3 的中断处理中,外设 A1 发出中断请求; (3)在外设 A1 的中断处理未完成前,发出 EOI 结束命令,外设 A5 发出中断请求 答:外设的中断处理程序的次序为:A3→A1→A3→A4→A5