参考

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
添付ファイル