我已经读过,为了根据英特尔的系统编程指南(第3卷第9.9章)暂时关闭分页,我应该先禁用中断,然后再执行其他操作。我可以使用cli轻松禁用可屏蔽中断,但是所有有关禁用NMI的手册都说>
NMI中断可通过外部电路禁用。(软件必须保证在中断期间不会产生异常或中断。模式切换操作。)
[我在this OSDEV page处发现了类似于C代码的用于禁用NMI的代码,但我不太明白它的含义
void NMI_enable() { outb(0x70, inb(0x70) & 0x7F); } void NMI_disable() { outb(0x70, inb(0x70) | 0x80); }
感觉好像该代码没有上下文并且在不知道outb和inb函数做什么的情况下是没有意义的。
我已经读过,为了根据英特尔的系统编程指南(第3卷第9.9章)暂时关闭分页,我应该先禁用中断,然后再执行其他操作。我可以轻松禁用...
CPU具有不可触发的中断(NMI)引脚(或等效硬件),用于触发NMI。有外部电路(或等效硬件)可防止NMI到达CPU。从80286开始,使用的机制是通过与CMOS/Realtime Clock(RTC)控制器关联的IO端口进行的。如今,这种相同的机制仍在硬件中被模仿。
“具有外部电路”是指板上的处理器芯片的NMI引脚之前有门,如果这些门被关闭(关闭),则不会有中断信号到达处理器芯片的NMI引脚。