Mac OS X cannot bind ELF objects. It only works with the Mach-O executable format. If you don't want to understand how to translate object files, you will probably be better off writing code that works with Mac OS X assembler.
Edit: as @Fry mentions in a comment below, you can make nasm port Mach-O objects. In this case, the problem is simple: release _ from _start in both places of the source file. The result is very good.
source share