%ifndef ALLOC_INC %define ALLOC_INC %ifndef SYS_INC %include "sys.inc" %endif %macro alloc 0-1 rax xor rdi, rdi ; Let Kernel give Address mov rsi, %1 ; Size to allocate mov rdx, 3 ; PROT_READ | PROT_WRITE mov r10, 0x1002 ; MAP_PRIVATE | MAP_ANONYMOUS xor r8, r8 ; fd = -1, Not backed by a file xor r9, r9 ; offset = 0 mov rax, SYS_MMAP syscall %endm %macro free 1-2 rax mov rdi, %1 ; Address to free mov rsi, %2 ; Size allocated mov rax, SYS_MUNMAP syscall %endm %endif