;--- Win64 "hello world" GUI application. ;--- Note: requires at least JWasm v2 ;--- assemble: JWasm -win64 Win64_1.asm ;--- link: Link /subsystem:windows Win64_1.obj option casemap:none includelib kernel32.lib includelib user32.lib externdef MessageBoxA : near externdef ExitProcess : near .data text db 'Hello world!', 0 caption db 'Hello x86-64', 0 .code main proc sub rsp, 28h ; space for 4 arguments + 16byte aligned stack xor r9d, r9d ; 4. argument: r9d = uType = 0 lea r8, [caption] ; 3. argument: r8 = caption lea rdx, [text] ; 2. argument: edx = window text xor rcx, rcx ; 1. argument: rcx = hWnd = NULL call MessageBoxA xor ecx, ecx ; ecx = exit code call ExitProcess main endp end |