如何通过BIOS中断在实模式下处理键盘?

时间:2010-11-06 13:18:47

标签: assembly operating-system x86 calculator bootloader

我必须为我可以运行计算器的操作系统编写代码。它就像一个桌面计算器。为此,我正在阅读brokenthorn operating development series我已完成second stage of bootloader引导加载程序处于实模式。在此之后,作者正在解释保护模式。我不想使用保护模式。我没有时间。所以我想通过使用bios中断在实模式下编写计算器。可能吗?我认为它可以写在引导程序的第二阶段(我不确定。)意味着我不必使用内核(我不确定)。我不知道如何使用BIOS中断来处理键盘。任何人都可以给我一个链接来帮助我吗?如果我认为上面的任何错误是错误的,请纠正我。谢谢。

2 个答案:

答案 0 :(得分:9)

如果您想使用高级BIOS键盘服务,而不是自己处理键盘中断,那么INT 16h就是您想要的。

带有INT 16hAH=00h

10h将阻止等待按键(在AL中返回ASCII结果);如果您想要避免阻止,请先使用AH=01h11h来查询按键是否可用(如果密钥可用,则立即返回ZF清除,否则设置为“{1}}。参见例如herehere(或Google“INT 16h”了解更多信息)。

答案 1 :(得分:4)

您可以处理IRQ 1(由x86控制器映射到中断9)并从端口60h读取密钥。

请参阅http://inglorion.net/documents/tutorials/x86ostut/keyboard/