求可通过Visual C++2019编译的Win32汇编printf版Hello World程序
使用printf的32位Win32汇编Hello World程序(兼容VC++2019)
以下是符合要求的汇编代码,采用MASM语法,可通过Visual Studio 2019的32位编译环境编译运行:
.386 .model flat, stdcall option casemap :none ; 导入C标准库的printf函数(cdecl调用约定) extrn printf:cdecl ; 导入Windows API的ExitProcess函数(stdcall调用约定) extrn ExitProcess:proc .data ; 输出字符串,0Ah为换行符,0为C风格字符串结束符 szHello db 'Hello, World!', 0Ah, 0 .code start: ; 传递printf的参数:字符串地址(cdecl约定参数从右往左入栈) push offset szHello call printf ; cdecl约定由调用者清理栈,这里入栈了4字节参数,所以加4 add esp, 4 ; 调用ExitProcess退出程序,返回值0 push 0 call ExitProcess end start
编译步骤(Visual Studio 2019 x86环境)
- 创建空Win32项目,确保平台选择为x86(32位)。
- 添加后缀为
.asm的文件到项目中,粘贴上述代码。 - 配置项目属性:
- 右键项目 → 属性 → 配置属性 → 常规:确认平台工具集为
v142 (Visual Studio 2019)。 - 右键项目 → 生成依赖项 → 生成自定义:勾选
masm(.targets,.props),启用MASM汇编支持。 - 链接器 → 输入 → 附加依赖项:添加
msvcrt.lib;kernel32.lib(分别提供printf和ExitProcess的实现)。
- 右键项目 → 属性 → 配置属性 → 常规:确认平台工具集为
- 点击生成并运行,控制台将输出
Hello, World!。
内容的提问来源于stack exchange,提问作者Darox99
相关产品推荐
相关产品推荐

