; hello2.asm - Windows program to print "Hello, world" using smallwin.inc ; To asemble/run using MASM 6.15 ; ; set include=\masm615\include ; set lib=\masm615\lib ; ml /Cx /c /coff hello2.asm ; link32 hello2.obj kernel32.lib /subsystem:console ; hello2 include smallwin.inc ; from Irvine CDROM .stack 4096 .data greeting byte "Hello, world", 13, 10 ; message to write greeting_size = $ - offset greeting ; length of message stdout dword ? ; handle for standard output result dword ? ; number of bytes written .code public _main _main proc ; Get stdout handle invoke GetStdHandle, STD_OUTPUT_HANDLE mov stdout, eax ; Write greeting_size bytes of greeting to handle stdout ; Put number of bytes written in result ; The last argument (0) is reserved invoke WriteConsoleA, stdout, offset greeting, greeting_size, offset result, 0 ; Exit to Windows with status 0 invoke ExitProcess, 0 _main endp end _main