запустить 32-битную сборку на 64-битном процессоре с Mac OS X

У меня проблема с запуском 32-битной сборки на моем 64-битном Mac под управлением OS X 10.9.5. У меня также установлен NASM 2.11.08. Я в настоящее время читаю на языке ассемблера Step by Step Джеффа Дюнтманна. В книге он указывает инструкции для 32-битной сборки в операционной системе Linux. Как мне запустить эту программу на моем 64-битном компьютере Mac OS X?

; 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

Я пытался собрать его с

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

Затем я пытаюсь связать это с

ld -o eatsyscall eatsyscall.o

но я получаю эту ошибку

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

Это должно бежать, верно? Я думал, что 64-разрядные процессоры Intel способны работать с 32-разрядными программами. Или нет способа запустить программу сборки, написанную для 32-битных систем Linux на 64-битном Mac?

Нужно ли устанавливать какой-то набор 32-битных библиотек, чтобы можно было связать этот файл? Должен ли я использовать что-то кроме NASM, например, GCC? Или сама программа написана неправильно. Спасибо за помощь!

Ответы на вопрос(2)

Ваш ответ на вопрос