0

我正在使用 MASM 语法,并且我想获得一个键盘按键然后将其存储以便稍后在代码中使用它,我尝试使用:int 21h 中断,但它似乎在 32 位下不起作用。

还有其他方法可以实现吗?

谢谢。

4

1 回答 1

0

如果您想切换到 Windows,您可能会使用该GetKeyboardState功能来确定是否正在按下一个或多个键。比使用更容易的GetKeyboardState是使用以下内容:

.486
.model flat,stdcall
option casemap : none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\msvcrt.inc
include \masm32\macros\macros.asm

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\msvcrt.lib

.data?
key dd ?

.code

start:

printf("Press a key..")
call crt__getch
mov key,eax
printf("\nYou pressed key number %d", key)

invoke ExitProcess,0

END start
于 2013-08-02T09:04:36.813 回答