mirror of
https://github.com/Didnelpsun/CS408.git
synced 2026-02-07 04:44:02 +08:00
Update 0-summary.md
This commit is contained in:
@@ -307,16 +307,18 @@
|
||||
1. 关中断。$CPU$响应中断后,首先要保护程序的现场状态,在保护现场的过程中,$CPU$不应响应更高级中断源的中断请求。否则,若现场保存不完整,在中断服务程序结束后,也就不能正确地恢复并继续执行现行程序。
|
||||
2. 保存断点。为保证中断服务程序执行完毕后能正确地返回到原来的程序,中断隐指令将原来的程序的断点(即程序计数器$PC$)保存起来。由硬件自动完成。
|
||||
3. 中断服务程序寻址。其实质是取出中断服务程序的入口地址送入程序计数器$PC$。
|
||||
4. 保存现场和屏蔽字。进入中断服务程序后,首先要操作系统保存现场,现场信息一般是指程序状态字寄存器$PSWR$和某些通用寄存器的内容。
|
||||
4. 保存现场和屏蔽字。进入中断服务程序后,首先要**操作系统**保存现场,现场信息一般是指程序状态字寄存器$PSWR$和某些通用寄存器的内容,即中断屏蔽字。
|
||||
5. 开中断。允许更高级中断请求得到响应。
|
||||
6. 执行中断服务程序。这是中断请求的目的。
|
||||
6. 执行中断服务程序。这是中断请求的目的。各中断向量统一存放在中断向量表中,该表由操作系统初始化,硬件找到该中断信号对应的中断向量,中断向量指明中断服务程序入口地址,然后根据其开始执行。
|
||||
7. 关中断。保证在恢复现场和屏蔽字时不被中断。
|
||||
8. 恢复现场和屏蔽字。将现场和屏蔽字恢复到原来的状态。
|
||||
9. 开中断、中断返回。中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序。
|
||||
|
||||
第一步到第三步是$CPU$进入中断周期后,由硬件自动完成(中断隐指令),第四到九条是中断服务程序完成。
|
||||
第一步到第三步是$CPU$进入中断周期后,由硬件自动完成(中断隐指令),第四到九条是中断服务程序(软件)完成。
|
||||
|
||||
中断处理和子程序调用都会压栈保存数据。子程序调用只需保存程序断点,即该指令的下一条指令的地址;中断处理不仅要保存断点($PC$的内容),还要保存程序状态字寄存器($PSW$)的内容。
|
||||
终端服务程序本身可能是用户程序,但是具体进入中断进行处理的程序一定是系统程序。
|
||||
|
||||
中断处理和子程序调用都会压栈保存数据。子程序调用只需保存程序断点$PC$内容,即该指令的下一条指令的地址;中断处理不仅要保存断点($PC$的内容),还要保存程序状态字寄存器($PSW$)的内容。
|
||||
|
||||
### 系统调用
|
||||
|
||||
|
||||
Reference in New Issue
Block a user