Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 管理按键_Assembly_32 Bit_Masm_Masm32 - Fatal编程技术网

Assembly 管理按键

Assembly 管理按键,assembly,32-bit,masm,masm32,Assembly,32 Bit,Masm,Masm32,我使用的是MASM语法,我想得到一个键盘按键,然后将其存储在代码中供以后使用,我尝试过使用:int 21h interrupt,但它在32位下似乎不起作用 有没有其他方法可以做到这一点 谢谢。如果您想切换到Windows,您可以使用该功能查看是否按下了一个或多个键。比使用GetKeyboardState更简单的方法是使用以下内容: .486 .model flat,stdcall option casemap : none include \masm32\include\windows.inc

我使用的是MASM语法,我想得到一个键盘按键,然后将其存储在代码中供以后使用,我尝试过使用:int 21h interrupt,但它在32位下似乎不起作用

有没有其他方法可以做到这一点


谢谢。

如果您想切换到Windows,您可以使用该功能查看是否按下了一个或多个键。比使用
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

您的程序在什么环境下运行?Windows7,32位。我忘了提到这个程序实际上是基于控制台的。你必须在DosBox这样的模拟器中运行你的程序。或者将其改为Windows控制台应用程序(这意味着使用Win32 API而不是中断)。您认为哪种Win32 API最适合实现这一目标?