【问题标题】:x86 Assembly Keyboard Input Without INT不带 INT 的 x86 汇编键盘输入
【发布时间】:2010-12-15 17:13:56
【问题描述】:

我需要制作一个动画,当用户按住按键时会加速,当按键松开时会恢复正常速度。我不能像大多数 DOS 和 BIOS 中断那样“等待”用户输入键,因为它会停止动画。

我尝试使用选项 01H INT 16H,它可以在不暂停程序的情况下工作,但它也不会清除键盘缓冲区;因此,即使释放键,动画也会保持加速,因为键保留在缓冲区中。

我在想,如果我可以手动访问键盘缓冲区的内存位置,我就可以自己检索和擦除它。但遗憾的是我不知道该怎么做。任何帮助将不胜感激。

【问题讨论】:

    标签: assembly input keyboard


    【解决方案1】:

    使用端口 060h,获取那里的按键按下和释放状态

    【讨论】:

      【解决方案2】:

      这有很多问题。您无法扫描端口 0x60 主要是因为同一个端口与鼠标共享。首先,您需要扫描端口 0x64,确定它是键盘还是鼠标。这甚至没有设置 PS/2 接口和初始化每个不同的键盘驱动程序(可能不需要,但它使过程更顺畅)

      不看OSDev's Instructions就去bios吧

      【讨论】:

        猜你喜欢
        • 2013-01-27
        • 2011-06-20
        • 2017-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-03
        • 2014-04-21
        • 1970-01-01
        相关资源
        最近更新 更多