So I got this now:
extern ExitProcess
extern WriteConsoleA
extern GetStdHandle
extern ReadFile
SECTION .bss
wrtn resq 1
SECTION .data
msg db "Hello, world!"
SECTION .text
main:
SUB rsp, 0x28
MOV rcx, -11
CALL GetStdHandle
MOV rcx, rax
MOV rdx, msg
MOV r8, 13
MOV r9, wrtn
MOV qword [rsp+0x20], 0
CALL WriteConsoleA
MOV rcx, 0
CALL ExitProcess
ADD rsp, 0x28
RET
And it looks pretty good to me, but still nothing is happening.
I can't believe no one made a "Hello, world" on x64 Windows without using printf.
I hope someone can still help me, because google can't