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

nar*_*tra 6 x86 assembly operating-system calculator bootloader

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

Mat*_*ery 9

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

INT 16h使用AH=00h10h将阻止等待按键(返回ASCII结果AL); 如果要避免阻塞,请先使用AH=01h11h查询按键是否可用(ZF如果密钥可用,则立即返回,如果没有,则立即返回).请参阅此处此处(或Google"INT 16h"了解更多信息).


Fré*_*idi 5

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

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