ejecutar ensamblaje de 32 bits en procesador de 64 bits con mac os x

Tengo un problema al ejecutar el ensamblaje de 32 bits en mi Mac de 64 bits con OS x 10.9.5. También tengo instalado NASM 2.11.08. Actualmente estoy leyendo lenguaje ensamblador paso a paso por Jeff Duntemann. En el libro especifica instrucciones para el ensamblaje de 32 bits en un sistema operativo Linux. ¿Cómo puedo ejecutar este programa en mi computadora Mac OS x de 64 bits?

; eatsyscall.asm

SECTION .data           ; Section containing initialised data
EatMsg: db "Eat at Joes!",10
EatLen: equ $-EatMsg    

SECTION .bss            ; Section containing uninitialized data 

SECTION .text           ; Section containing code

global  _start          ; Linker needs this to find the entry point!

_start:
    nop         ; This no-op keeps gdb happy...
    mov eax,4       ; Specify sys_write call
    mov ebx,1       ; Specify File Descriptor 1: Standard Output
    mov ecx,EatMsg      ; Pass offset of the message
    mov edx,EatLen      ; Pass the length of the message
    int 80H         ; Make kernel call

    MOV eax,1       ; Code for Exit Syscall
    mov ebx,0       ; Return a code of zero 
    int 80H         ; Make kernel call

He intentado ensamblarlo con

nasm -f elf -g -F stabs eatsyscall.asm

Luego trato de vincularlo con

ld -o eatsyscall eatsyscall.o

pero me sale este error

ld: warning: -arch not specified
ld: warning: -macosx_version_min not specified, assuming 10.6
ld: warning: ignoring file eatsyscall.o, file was built for unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 ) which is not the architecture being linked (x86_64): eatsyscall.o
Undefined symbols for architecture x86_64:
  "start", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for inferred architecture x86_64

Esto debería funcionar, ¿verdad? Pensé que los procesadores Intel de 64 bits eran capaces de ejecutar programas de 32 bits. ¿O no hay forma de ejecutar un programa de ensamblaje escrito para sistemas Linux de 32 bits en una Mac de 64 bits?

¿Necesito instalar algún conjunto de bibliotecas de 32 bits para poder vincular este archivo? ¿Debo usar algo que no sea NASM como GCC? ¿O el programa en sí no está escrito correctamente? ¡Gracias por la ayuda!

Respuestas a la pregunta(2)

Su respuesta a la pregunta