2012-02-26 36 views

回答

1

通常你写在汇编中的中断程序的至少一部分。这是因为在很多情况下,中断只是简单地使处理器向量到某个特定的内存位置,然后从那一点开始执行代码。因为你的处理器可能不遵守你使用的任何更高级的lanugage的调用约定,所以你需要编写一些汇编代码来修复它,调用一些更高级别的中断处理代码,然后一些更多汇编代码来清除中断并使系统恢复正常执行。例如,在Intel芯片上,您需要使处理器执行iret指令才能从中断返回。用任何高级语言以任何标准方式都无法做到这一点。

+0

嘿感谢您的快速回复。自上午以来我一直在努力寻找答案。 – user1165418 2012-02-26 05:30:25

2

中断处理程序始终在非常低的级别环境中开始执行。编程语言,但汇编总是需要系统库和一些称为“运行时”的东西。

例如,在汇编语言之外操作堆栈指针寄存器并不容易。

另外,ABI也是一个障碍。应用程序二进制接口在中断处理中过于复杂,特别是在上下文保存和恢复方面。