代码:
.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>