注:本文档为《从0学x86操作系统》课程配套的学习文档,提供相应的辅助学习资料和答疑勘误。 有关该课程的信息,请点击这里访问:https://study.163.com/provider/1017884735/index.htm 在阅读本文档时,如有疑问和建议,欢迎在下方留言或者直接联系我。

本课时主要实现4个与中断打开与关闭的函数。其中两个可以开关所有中断,另外两个则可用于特定的kon。

中断使能开关

中断控制受两部分控制,首先是8259中断控制器控制着外设的中断信号是否允许到达CPU,这项功能由其内部寄存器IMR控制。该控制器为8位,其中bit0控制该芯片的IRQ0,bit1控制IRQ1,依此类推。
image.png
另外,cpu内部的EFLAGS标志寄存器中的IF位控制中CPU是否响应着任意来自8259的中断信号。如果为1,则允许,如果为0则禁止。
image.png

参考资料

  • 8259数据手册(在课程提供的资料下载中有8259.pdf文档)
  • osdev关于8259的文档:https://wiki.osdev.org/PIC
  • LINUX内核完全剖析:基于0.12内核 第180页(在课程提供的资料下载中有pdf文档)