在 x86 实模式下重启非常简单。您可以使用 BIOS 或:
jmp 0xFFFF:0000
但是在保护模式下应该如何重新启动呢?
有关端口 0xCF9 的信息。
为了写入它,需要访问内核模式(即来自内核驱动程序)。
0xCF9端口可以获得三种复位类型的三个值:
将 4 写入 0xCF9:(INIT)将初始化 CPU。这意味着它将跳转到启动的初始位置,但它会保持许多 CPU 元素不变。大多数内部表、chaches 等将在 Init 调用中保持不变(但在调用期间可能会发生变化)。
将 6 写入 0xCF9:(复位)将重置 CPU,并将所有内部表缓存等清除到初始状态。
将 0xE 写入 0xCF9:(重新启动)将重新启动主板及其附带的所有部件。
Windows 驱动程序中的示例:
__outbyte(0xCF9, 0xE);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)