Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; "C:\Program Files\NASM\nasm" -fwin64 hello64.asm
- ; "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\link" /LIBPATH:"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\um\x64" /SUBSYSTEM:CONSOLE /MACHINE:X64 /VERBOSE hello64.obj /ENTRY:_main /OUT:hello64.exe kernel32.lib
- global _main
- extern GetStdHandle
- extern WriteConsoleA
- section .data
- msg: db "Hello World!"
- section .text
- _main:
- mov rcx, -11 ; DWORD nStdHandle = STD_OUTPUT_HANDLE
- call GetStdHandle
- mov rcx, rax ; HANDLE hConsoleOutput = stdout
- mov rdx, msg ; LPCVOID lpBuffer = msg
- mov r8, 12 ; DWORD nNumberOfCharsToWrite = 12
- xor r9, r9 ; LPDWORD lpNumberOfCharsWritten = nullptr
- sub rsp, 40 ; Reserve parameter space on stack
- mov dword [rsp + 32], 00h ; LPVOID lpReserved = nullptr
- call WriteConsoleA
- add rsp, 40 ; Clean up parameter space on stack
- xor eax, eax
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement