中断服务程序的入口地址
发布时间:2014/6/8 20:58:19 访问次数:3421
中断服务实际上就是执行中断服务程序。CPU通过执行中断服务程序实现与外设的数据交换。
中断服务裎序从入口地址开始执行,SAA6721E一直到返回指令RETI为止。RETI指令的操作一方面告诉中断系统该中断服务程序已执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入程序计数器PC,使程序返回到被中断的程序断点处继续执行。
表6-6 中断服务程序的入口地址
在编写中断服务程序时应注意以F问题:
(1)在中断服务程序中,用户应注意用软件保护现场,以免中断返回后丢失原寄存器、累加器中的信息。
(2)若要在执行当前中断程序时禁止更高优先级中断,可以先用软件关闭CPU中断或禁止某中断源中断,在中断返回前再开放中断。
中断返回
中断服务程序的最后一条指令必须为中断返回指令RETI。RETI指令能使CPU结束终端服务程序的执行,返回到曾经被中断的程序处,继续执行主程序。RETI指令的具体功能如下:
(1)将中断响应时压入堆栈保存的断点地址从栈顶弹出送回PC,CPU从原来中断的地方继续执行程序。
(2)将相应中断优先级状态触发器清零,通知中断系统,中断服务程序已执行完毕。
中断服务实际上就是执行中断服务程序。CPU通过执行中断服务程序实现与外设的数据交换。
中断服务裎序从入口地址开始执行,SAA6721E一直到返回指令RETI为止。RETI指令的操作一方面告诉中断系统该中断服务程序已执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入程序计数器PC,使程序返回到被中断的程序断点处继续执行。
表6-6 中断服务程序的入口地址
在编写中断服务程序时应注意以F问题:
(1)在中断服务程序中,用户应注意用软件保护现场,以免中断返回后丢失原寄存器、累加器中的信息。
(2)若要在执行当前中断程序时禁止更高优先级中断,可以先用软件关闭CPU中断或禁止某中断源中断,在中断返回前再开放中断。
中断返回
中断服务程序的最后一条指令必须为中断返回指令RETI。RETI指令能使CPU结束终端服务程序的执行,返回到曾经被中断的程序处,继续执行主程序。RETI指令的具体功能如下:
(1)将中断响应时压入堆栈保存的断点地址从栈顶弹出送回PC,CPU从原来中断的地方继续执行程序。
(2)将相应中断优先级状态触发器清零,通知中断系统,中断服务程序已执行完毕。