Данную заметку я решил по-быстрому наклипать, так как абсолютно нигде не нашел толкового ответа как скомпилить самое простое приложение, аля "Hello, World!" на ассме под операционной системой Mac OS X.
4 простых шага для создания приложения.
1. Создаем исходник на асме:
$ nano hello.asm
Далее в формате Mach-O:
.section __DATA,__data
str:
.asciz "Hello world!\n"
.section __TEXT,__text
.globl _main
_main:
movl $0x2000004, %eax
movl $1, %edi
movq str@GOTPCREL(%rip), %rsi
movq $100, %rdx
syscall
movl $0, %ebx
movl $0x2000001, %eax
syscall
2. Создание объектного модуля:
$ as hello.asm -o hello.o
3. Компиляция бинарника:$ ld hello.o -e _main -macosx_version_min 10.8 -o hello -lSystem
4. Запуск:$ ./hello
В результате консоль должна выдать сообщение "Hello world!"Более подробно о формате Mach-O и командах можно почитать здесь.
Об отличиях синтаксиса Intel от AT&T здесь.
О редакторе кода ассемблера для Mac OS X с подсветкой синтаксиса в предыдущей статье.
Комментариев нет:
Отправить комментарий