我只是从本教程中学习波兰语的内核编程-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
我不了解此代码。有人可以向我解释吗?
答案 0 :(得分:1)
8086处理器具有一个复位引脚。断言时,这会将处理器重置为其初始状态。该引脚连接到键盘控制器。如果您要求键盘控制器先拉高然后再拉低复位引脚(这就是您发布的代码的作用),则处理器将被复位。
现代x86处理器的工作原理与此有所不同,并且键盘控制器不再是单独的芯片。但仍然,相同的方法会使南桥生成重置信号,从而重新启动计算机。