Элементарная заготовка новичка:
format ELF64 executable 3
entry start
; include 'linInclude/import32.inc'
; include 'linInclude/proc32.inc'
; interpreter '/lib/ld-linux.so.2'
include 'linInclude/import64.inc'
include 'linInclude/proc64.inc'
interpreter '/lib64/ld-linux-x86-64.so.2'
needed 'libc.so.6'
import exit,\
printf
segment readable executable
cinvoke printf, fmtS, msg
cinvoke exit
segment readable writeable
msg db 'Hello, World!', 0xA, 0
fmtS db '%s', 0xA, 0
В режиме 32 бита (инвертировать импорты и сменить ELF64 на ELF) всё работает.
При переключении на 64-бита компилируется, но при запуске выдаёт
Segmentation fault (core dumped)