RedPanda-CPP/platform/windows/templates/Hello_ASM/main.asm

23 lines
487 B
NASM

extern printf
extern exit
global main
section .data ; Data section, initialized variables
msg: db "Hello world", 0 ; C string needs 0
fmt: db "%s", 10, 0 ; The printf format, "\n",'0'
section .text:
main:
push rbp ; align our stack at entry
mov rbp, rsp ; use RBP as frame reference
sub rsp, 32 ; our 16-byte aligned local storage area
mov rcx, fmt
mov rdx, msg
call printf
mov eax,0 ; exit code
add rsp,32 ; restore stack
pop rbp ; restore stack
ret