我们如何通过键盘端口重启

时间:2019-11-13 04:20:07

标签: c linux io x86 osdev

以下代码如何重启系统,任何人都可以提供有关此文档的信息

#define KEYBOARD_PORT 0x64
ioperm(KEYBOARD_PORT, 0x01, 0x01);
outb(0xfe, KEYBOARD_PORT);

在键盘端口上写入“ 0xfe”的意义是什么。

1 个答案:

答案 0 :(得分:5)

最初的8042“ PS / 2键盘控制器”设计在控制器上有一些额外的针脚,而那些精干的IBM工程师确实将许多东西连接到了这些额外的针脚上。一个引脚连接到CPU复位引脚,另一个未使用的引脚用于修复80286地址环绕式不兼容问题,该修复称为the A20 gate

命令字节0xFx的意思是“将选定的线向下脉冲6毫秒”,其中E选择复位线(位0为零)。效果是重置CPU,使其开始根据其启动顺序执行代码。

自然,当前的PC没有Intel 8042微控制器,只是其仿真...


Osdev Wiki文章RebootPS/2 Controller中的更多信息。