|
请教:这个问题不针对某个系统.
最近看了一些书有些疑惑.
以前用ASM时,写中断,一开始就是保护现场(PUSH入某些寄存器之类),然后是中断里面可能用到的寄存器,内存等.处理完服务程序后,就POP出.
现在用C写中断服务程序,编译器是自动根据用户写的程序所用到的资源自动完成保护现场的代码的.
一旦用操作系统时,任务切换,中断切换,需要调用所谓"切换函数"(ASM写的).
但是我怎么知道究竟需要保存什么现场呢?不可能把所有寄存器都保存下来吧?我又不知道任务里面或者中断服务程序里面用了什么寄存器和RAM(C环境下)
不可能每次更改中断又去改一下那个"切换函数"吧?
头脑混乱,不知道大家明白我说什么不? |
|