对不起,如果这是一个基本问题,但我似乎无法在网上找到答案。
我正在学习集会。开发环境是VS2013& Windows 7上的MASM。我对字符串操作有一个很好的理解,现在我正在尝试将一个字符打印到控制台。我可以在互联网上找到的方法包括使用MessageBoxA包含MASM文件,或修改项目设置以使用DOS中断。
包括外部文件和修改项目设置是我绝对不想做的两件事。 MessageBoxA看起来很酷,但是没有办法在纯ASM中打印到控制台吗?谢谢!
答案 0 :(得分:3)
Windows不是DOS,并且已经很久没有了。基于Windows NT的版本不允许您在没有内核驱动程序的情况下直接写入硬件。
如果您不关心Unicode,那么您只需要调用GetStdHandle(STD_OUTPUT_HANDLE)
来获取stdout的句柄,然后将此句柄与WriteFile
一起使用。
如果GetConsoleMode
返回true,则使用WriteConsole
编写Unicode字符串。