Domanda

I'm using MASM syntax , and I want to get a keyboard key press then store it to use it later in code , I've tried using : int 21h interrupt but it seems that it doesn't work under 32-bit.

Is there any other way to achieve that ?

thanks.

È stato utile?

Soluzione

If you want to switch to Windows, you could probably use the GetKeyboardState function to find out if one or more keys are being pressed. Even easier than using GetKeyboardState would be to use something like the following:

.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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top