Besides what Drew McGowen points out, rax
needs to be zeroed (no vector parameters).
But -f win64
or -f elf64
will work on this code. I suspect a bug in -f macho64
(but I'm not sure what macho64
is "supposed" to do). Until this gets fixed(?), the workaround is to use default rel
or mov rdi, rel msg
. I "think" that'll work for ya.