Introduction To 64 Bit Windows Assembly Program... [1080p]

To write a program, you typically use an assembler like NASM (Netwide Assembler) or MASM (Microsoft Macro Assembler). Below is a conceptual look at what a "Hello World" program looks like using the Windows API function WriteFile .

; External Windows functions extern GetStdHandle extern WriteFile extern ExitProcess section .data msg db "Hello, 64-bit World!", 0 msg_len equ $ - msg section .bss bytes_written resq 1 section .text global main main: sub rsp, 40 ; Reserve shadow space + align stack ; Get handle to standard output mov rcx, -11 ; STD_OUTPUT_HANDLE call GetStdHandle mov r12, rax ; Save handle in r12 ; Write to the console mov rcx, r12 ; Arg 1: Handle lea rdx, [rel msg] ; Arg 2: Buffer address mov r8, msg_len ; Arg 3: Length lea r9, [rel bytes_written] ; Arg 4: Pointer to written count mov qword [rsp + 32], 0 ; Arg 5: Overlapped (on stack) call WriteFile ; Exit the program xor rcx, rcx ; Return code 0 call ExitProcess Use code with caution. Copied to clipboard Introduction to 64 Bit Windows Assembly Program...

RAX, RBX, RCX, RDX: The primary data registers. RAX is typically used for return values. To write a program, you typically use an