I passed this on to the development team, and got this from Nasm's chief maintainer:
-------------------------------------
default rel
global _start
_start:
mov al,'*'
mov byte [Msg+rsi],al ; ERROR
The problem is that Msg here isn't PC-relative since it has an index.
This is presumably illegal in MachO64. Instead he should:
lea rdi,[Msg]
mov [rdi+rsi],al
Note lea, not mov...
-hpa
----------------------------------------
So apparently not a bug, but an oddity of the output format. I don't know wht "lea" is better than "mov" but I'll take his word for it.
Best,
Frank