【问题标题】:Assembly8086 - how to get input from arrow keys程序集 8086 - 如何从箭头键获取输入
【发布时间】:2017-09-20 02:00:36
【问题描述】:

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

【问题讨论】:

  • 在哪个操作系统下?
  • @David:可能是 DOS。但事实上,这些信息应该是有问题的。

标签: assembly input keyboard x86 ascii


【解决方案1】:

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

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

但是,与字符不对应的键不会被转换。箭头键就是此类键的一个示例。

所以,你不能得到方向键的ASCII码,因为没有这种东西。

你能得到的,是方向键的扫描码。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-09-01
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 2011-05-20
      • 1970-01-01
      相关资源
      最近更新 更多