; fasm example_flat_assembly.fasm example_flat_assembly && chmod +x example_flat_assembly format ELF64 executable 3 entry main TERMINAL_INPUT = 0 TERMINAL_OUTPUT = 1 EXIT_SUCCESS = 0 EXIT_FAILURE = 1 macro write file, data, size { mov rax, 1 mov rdi, file mov rsi, data mov rdx, size syscall } macro exit code { mov rax, 60 mov rdi, code syscall } segment readable executable colour: write TERMINAL_OUTPUT, colour_red, 7 ret cancel: write TERMINAL_OUTPUT, colour_end, 4 ret main: call colour write TERMINAL_OUTPUT, string, length call cancel exit EXIT_SUCCESS segment readable writable colour_red db 27, "[1;31m" colour_end db 27, "[0m" string db "Heyo world!", 10, 0 length dq $ - string