"Fossies" - the Fresh Open Source Software Archive 
Member "fasm/examples/elfexe/hello64.asm" (21 Feb 2022, 704 Bytes) of package /linux/misc/fasm-1.73.30.tgz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Generic Assembler source code syntax highlighting (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
See also the latest
Fossies "Diffs" side-by-side code changes report for "hello64.asm":
1.73.29_vs_1.73.30.
1
2 ; fasm demonstration of writing 64-bit ELF executable
3 ; (thanks to František Gábriš)
4
5 ; syscall numbers: /usr/src/linux/include/asm-x86_64/unistd.h
6 ; parameters order:
7 ; r9 ; 6th param
8 ; r8 ; 5th param
9 ; r10 ; 4th param
10 ; rdx ; 3rd param
11 ; rsi ; 2nd param
12 ; rdi ; 1st param
13 ; eax ; syscall_number
14 ; syscall
15
16 format ELF64 executable 3
17
18 segment readable executable
19
20 entry $
21
22 mov edx,msg_size ; CPU zero extends 32-bit operation to 64-bit
23 ; we can use less bytes than in case mov rdx,...
24 lea rsi,[msg]
25 mov edi,1 ; STDOUT
26 mov eax,1 ; sys_write
27 syscall
28
29 xor edi,edi ; exit code 0
30 mov eax,60 ; sys_exit
31 syscall
32
33 segment readable writeable
34
35 msg db 'Hello 64-bit world!',0xA
36 msg_size = $-msg