参考
hello32c.asm
comment *
hello32c.asm for MASM32
path %path%;c:\masm32\bin
ml /c /coff /Fl hello32c.asm
link /subsystem:console /libpath:c:\masm32\lib hello32c
*
.386
.model flat, stdcall
option casemap:none
;include <kernel32.inc>
ExitProcess PROTO STDCALL :DWORD
GetStdHandle PROTO STDCALL :DWORD
WriteConsoleA PROTO STDCALL :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
includelib <kernel32.lib>
NULL equ 0
; WinBase.h
STD_OUTPUT_HANDLE equ -11
.const ; CONST
hello db "hello, world", 0
.data? ; _BSS
hConsoleOutput dd ?
written dd ?
.code ; _TEXT
start:
invoke GetStdHandle, STD_OUTPUT_HANDLE
mov [hConsoleOutput], eax
mov edi, offset hello
mov eax, 0
L1:
cmp byte ptr [edi], 0
je L2
inc edi
inc eax
jmp L1
L2:
cld
invoke WriteConsoleA, hConsoleOutput, addr hello, eax, addr written, NULL
invoke ExitProcess, 0
end start
最終更新:2017年11月01日 15:07