如何使用键盘驱动程序重新启动计算机?

时间:2019-07-14 20:34:45

标签: assembly x86 keyboard kernel driver

我只是从本教程中学习波兰语的内核编程-https://pl.wikibooks.org/wiki/Pisanie_OS 它说那里的键盘驱动程序有很多用途,包括重新启动计算机。这是一个代码:

reset: 
     call kbd 
     mov al,0xfe 
     out 0x64,al 

kbd0:   
     jmp short $+2 
     in al,60h 
kbd:    jmp short $+2 
     in al,64h 
     test al,1 
     jnz kbd0 
     test al,2 
     jnz kbd 
     ret

我不了解此代码。有人可以向我解释吗?

1 个答案:

答案 0 :(得分:1)

8086处理器具有一个复位引脚。断言时,这会将处理器重置为其初始状态。该引脚连接到键盘控制器。如果您要求键盘控制器先拉高然后再拉低复位引脚(这就是您发布的代码的作用),则处理器将被复位。

现代x86处理器的工作原理与此有所不同,并且键盘控制器不再是单独的芯片。但仍然,相同的方法会使南桥生成重置信号,从而重新启动计算机。