★4.3.5  中断的返回

★4.3.5 中断的返回

不能用RET指令代替RETI指令。因为RET指令虽然也能控制PC返回原来中断的地方,但RET指令没有对中断优先级状态触发器进行清0的功能,中断控制系统就会认为所响应的中断仍在进行,其后果是使与此中断同级的中断请求将不被响应。所以中断服务程序结束时必须使用RETI指令实现中断返回。

若用户在中断服务程序中进行了入栈操作,则在RETI指令执行前,应进行相应的出栈操作,使栈顶指针SP与保护断点后的值相同,即在中断服务程序中,PUSH指令与POP指令必须成对使用,否则不能正确返回断点。

978-7-111-54295-7-Chapter04-24.jpg

图4-4 中断处理流程图