Hello World, использующий ассемблер x86 на Mac 0SX

Я пытаюсь погрузиться в программирование ассемблера x86 на моем Mac, но у меня возникли проблемы с созданием исполняемого файла. Проблема, похоже, на этапе связывания.

helloWorld.s:

.data

    HelloWorldString:
    .ascii "Hello World\n"

.text

.globl _start

_start:
    # load all the arguments for write()
    movl $4, %eax
    movl $1, %ebx
    movl $HelloWorldString, %ecx
    movl $12, %edx
    # raises software interrupt to call write()
    int $0x80

    # call exit()
    movl $1, %eax
    movl $0, %ebx
    int $0x80

Скомпилируйте программу:

as -o helloWorld.o helloWorld.s

Свяжите объектный файл:

ld -o helloWorld helloWorld.o

На этом этапе я получаю следующую ошибку:

ld: could not find entry point "start" (perhaps missing crt1.o) for inferred architecture x86_64

Любые советы по то, что я делаю неправильно / не хватает, было бы очень полезно. спасибо

15
задан starblue 4 December 2010 в 20:57
поделиться