;--- Win64 console application, uses Win32Inc v2+
;--- assemble: jwasm -c -win64 -Zp8 -D_WIN64 -I\Win32inc\Include Win64_4.asm
;--- link: link /subsystem:console /Libpath:\Win32inc\Lib64 Win64_4.obj
option casemap:none
option frame:auto
.nolist
.nocref
WIN32_LEAN_AND_MEAN equ 1
include windows.inc
.list
.cref
includelib <kernel32.lib>
;--- CStr(): macro function to simplify defining a string
CStr macro Text:VARARG
local szText
.const
szText db Text,0
.code
exitm <offset szText>
endm
.code
main proc FRAME uses rbx rsi rdi
local dwWritten:DWORD
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov rbx,rax
lea rsi, CStr("Hello, world",13,10)
invoke lstrlen, rsi
mov edi, eax
invoke WriteConsoleA, rbx, rsi, edi, addr dwWritten, 0
ret
main endp
mainCRTStartup proc FRAME
invoke main
invoke ExitProcess, eax
mainCRTStartup endp
end mainCRTStartup
|