【发布时间】:2010-08-14 06:37:06
【问题描述】:
如何用 C 语言编写软件中断?我知道需要编写一个中断服务例程然后中断 CPU 以便可以调用该例程,但我不知道如何在 C 中执行此操作。另外,我不知道如何使用中断描述符注册该例程桌子。 我有一个 x86-64 CPU (AMD Turion64 X2),我正在使用 gcc 编译器。 任何帮助将不胜感激。
【问题讨论】:
-
您要问的事情是您在编写操作系统时所做的事情,而不是应用程序。您能否详细解释一下您要完成的工作?
-
实际上,我正在为我的教职员工做作业,我需要检查 IRET 指令,这就是我需要中断服务程序的原因。在我写完之后,我应该“玩”可执行文件的十六进制代码并更改 IRET(删除它或其他东西)以查看会发生什么。
-
你不能用 C 编写 ISR,它需要(一些)程序集。您无法在受保护模式的操作系统上测试 ISR。更改 IRET 只会使代码崩溃。与您的教育工作者讨论这项作业。