roblema @ nasm / gcc en Mac OS X Lion de 64 bits

Estaba leyendoest artículo, y en un momento me da este programa nasm:

; tiny.asm
BITS 32
GLOBAL main
SECTION .text
main:
              mov     eax, 42
              ret

Y me dice que ejecute los siguientes comandos:

$ nasm -f elf tiny.asm
$ gcc -Wall -s tiny.o

Tuve el siguiente error

ld: warning: option -s is obsolete and being ignored
ld: warning: ignoring file tiny.o, file was built for unsupported file format which is not the architecture being linked (x86_64)
Undefined symbols for architecture x86_64:
  "_main", referenced from:
      start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

venturé a adivinar cuál podría ser el problema, y cambié la línea BITS para leer:

 BITS 64

Pero luego cuando ejecutonasm -f elf tiny.asm Yo obtengo

tiny.asm:2: error: `64' is not a valid segment size; must be 16 or 32

¿Cómo modifico el código para que funcione en mi máquina?

Editar

Seguí el consejo de Alex de los comentarios y descargué una versión más nueva. Sin embargo

./nasm-2.09.10/nasm -f elf tiny.asm

se queja

tiny.asm:2: error: elf32 output format does not support 64-bit code

Por otra parte

./nasm-2.09.10/nasm -f elf64 tiny.asm
gcc -Wall -s tiny.o

se queja

ld: warning: ignoring file tiny.o, file was built for unsupported file format which is not the architecture being linked (x86_64)
Undefined symbols for architecture x86_64:
  "_main", referenced from:
      start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

Respuestas a la pregunta(4)

Su respuesta a la pregunta