代码:
.386 .model flat,stdcall option casemap:none include windows.inc include kernel32.inc include user32.inc includelib kernel32.lib includelib user32.lib .data msg db 'hello hgy413',0 ;要显示的信息 .data? stdout dd ? ;存放标准输出的把柄 charout dd ? ;记录实际输出的字符数 .code start: push STD_OUTPUT_HANDLE call GetStdHandle;获取标准输出的把柄 mov stdout,eax ;保存句柄号 lea eax,msg push eax call lstrlen;求字符串的长度 lea ecx,charout lea edx,msg push NULL push ecx push eax push edx push stdout call WriteFile invoke ExitProcess,NULL ;程序结束 end start
编译运行:
F:\MASM>ml /c /coff 3.asm Microsoft (R) Macro Assembler Version 12.00.21005.1 Copyright (C) Microsoft Corporation. All rights reserved. Assembling: 3.asm *********** ASCII build *********** F:\MASM>link /subsystem:console 3.obj Microsoft (R) Incremental Linker Version 12.00.21005.1 Copyright (C) Microsoft Corporation. All rights reserved. F:\MASM>3.exe hello hgy413 F:\MASM>