如何处理汇编语言x86中的输入keydown事件?

时间:2013-08-27 15:14:27

标签: events assembly x86 interruptions

我是汇编编程的新手,我有一个汇编(x86)代码,它接受来自用户的输入。控制台将连续(循环)要求用户输入另一个字符,直到按下“输入”键。当按下“enter”键时,控制台将自动停止要求更多输入。

我怎么可能这样做?是否与中断有关? 谢谢你的建议...

1 个答案:

答案 0 :(得分:0)

在没有操作系统或在MS-DOS下运行时,您有两种可能:

第一个:

  • 直接访问键盘(I / O端口)(使用IN和OUT指令)
  • 您还必须捕获或禁用键盘中断,否则BIOS将“窃取”键盘请求

第二个:

  • 使用BIOS中断“INT 0x16”
  • 访问键盘

当您使用现代操作系统(Windows,Linux,...)时,您无法直接访问键盘;您将不得不调用操作系统API函数 - 与在C:中编程时调用的函数相同:

// C example:
getchar();

# Assembler example (Windows: _getchar, Linux: getchar):
call _getchar