; --------------------------------------------- ; Hello World for Win64 Intel x64 Assembly ; ; by fruel (https://github.com/fruel) ; 13 June 2016 ; --------------------------------------------- GetStdHandle PROTO ExitProcess PROTO WriteConsoleA PROTO .data msg BYTE "Hello World!",0 bytesWritten DWORD ? .code mainCRTStartup proc sub rsp, 5 * 8 ; reserve shadow space mov rcx, -11 ; nStdHandle (STD_OUTPUT_HANDLE) call GetStdHandle mov rcx, rax ; hConsoleOutput lea rdx, msg ; *lpBuffer mov r8, LENGTHOF msg - 1 ; nNumberOfCharsToWrite lea r9, bytesWritten ; lpNumberOfCharsWritten mov QWORD PTR [rsp + 4 * SIZEOF QWORD], 0 ; lpReserved call WriteConsoleA mov rcx, 0 ; uExitCode call ExitProcess mainCRTStartup endp END