Assembly8086 - 如何从箭头键获取输入

时间:2017-04-23 10:59:58

标签: assembly input keyboard x86 ascii

所以我熟悉程序集中的int 21h,它根据ASCII代码从用户那里获得键盘输入。在我的代码中,我想让用户能够使用箭头键,我在互联网上搜索并没有找到关于箭头键ASCII代码的明确答案。 如何在Assembly中从用户处获得箭头键输入?

2 个答案:

答案 0 :(得分:1)

键盘上的所有按键都会生成 扫描代码

其中一些键对应于字符,因此它们的扫描码转换为字符码,并通过int 21h等服务提供。

但是,不会转换与字符不对应的键。这种键的一个例子是箭头键。

所以,你不能获得箭头键的ASCII码,因为没有这样的东西。

您可以获得的是箭头键的扫描码。

因此,您需要查找为您提供原始扫描码的BIOS中断。

从这里开始:https://en.wikipedia.org/wiki/INT_16H - 祝你好运,玩得开心!

答案 1 :(得分:1)

你可以使用int 21h的子函数6,它将返回0x00,这意味着你需要再次调用它来获取扩展代码。