I/O 程序设计实验: 编程:编写一个被 0 除的中断处理程序并测试,当被 0 除时,显示一个提示信息 “Divided by Zero”,中断类型号为 0
时间: 2024-03-15 22:44:38 浏览: 6
好的,这是一个比较简单的任务。以下是我编写的中断处理程序:
```
#include <stdio.h>
#include <dos.h>
void interrupt (*old_handler)();
void new_handler()
{
printf("Divided by Zero\n");
old_handler();
}
int main()
{
// 保存原始中断处理程序
old_handler = getvect(0);
// 设置新的中断处理程序
setvect(0, new_handler);
// 触发被 0 除错误
int a = 10;
int b = 0;
int c = a / b;
// 恢复原始中断处理程序
setvect(0, old_handler);
return 0;
}
```
这个程序的作用是:首先保存原始的中断处理程序,然后设置一个新的中断处理程序来处理被 0 除错误。在新的中断处理程序中,我们会输出一个错误提示信息,然后调用原始的中断处理程序来继续处理其他的中断。最后,我们恢复原始的中断处理程序。
在这个程序中,我们使用了 DOS.h 头文件中的 getvect() 和 setvect() 函数来获取和设置中断处理程序。在 new_handler() 函数中,我们输出了一个错误信息,然后调用了原始的中断处理程序。
你可以在命令行中编译这个程序,并执行它来测试中断处理程序是否正常工作。需要注意的是,这个程序只能在 DOS 环境下运行。