|
|
@@ -1,49 +0,0 @@ |
|
|
|
; 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 |