2013-08-27 62 views
-1

我是汇编程序设计新手,我有一个接受用户输入的程序集(x86)代码。控制台将连续(循环)要求用户输入另一个字符,直到按下“enter”键。当按下“enter”键时,控制台将自动停止询问更多输入。如何处理在汇编语言x86中输入keydown事件?

我怎么可能做到这一点?这与中断有关吗? 谢谢你的建议...

+0

简单的谷歌搜索返回的几个结果。 一个是 http://www.softwareforeducation.com/sms32v50/sms32v50_manual/150-05keyb-in.htm 和最好的一个是: http://www.programmersheaven.com/mb/x86_asm/300660/300676 /重新键盘输入/ – icbytes

+0

哪个操作系统? – Michael

+0

软件中断可能是你需要的('int'指令)。请参阅提供的链接@icbytes。如果你在“x86键盘输入”上进行Google搜索,你会得到几个非常好的点击。 – lurker

回答

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