我在tasm中有这个代码
mov ah,00h
int 21h
cmp ah,3Bh
考虑到它是基于dos的应用程序(我们可以看到它使用相当陈旧的中断),它运行得很好。现在的问题是,win32 / system调用相当于从键盘获取扫描代码是什么?基本上,当用户按下F1键(扫描码为3Bh)时,它被登记在AH寄存器中。我们如何通过系统调用在win32程序集中实现这一点? (带有extrn,kernel32 dlls等的那个) 我正在使用NASM
答案 0 :(得分:1)
对于控制台模式程序,32位汇编代码最有可能的主页,它是ReadConsoleInput()。 GUI应用程序从GetMessage()返回的WM_KEYDOWN和WM_CHAR消息中获取击键。但是当然你从来没有在汇编中编写GUI应用程序,这对此毫无意义。
从C运行时库调用_getch()可能是最简单的方法,它是一个返回int的简单函数。