Работать с языком ассемблера весело и это отличный способ узнать больше о внутреннем механизме.Я не уверен, что вы тратите столько ресурсов, используя target-c для вычисления последовательности Фибоначчи, но, возможно, вы можете доказать, что я не прав.
Чтобы научиться сборке, начните с чего-то очень простого, а затем добавьте больше функций, входов и выходовпонять системные вызовы и последовательности вызовов функций, а затем стать более креативным.
Обязательно документируйте каждую строку как сложную сборку.
Для Mac OS X
Создайте файл с именем simple.asm: -
; simple.asm - exit
section .text
global simple ; make the main function externally visible
simple:
mov eax, 0x1 ; system call number for exit
sub esp, 4 ; OS X (and BSD) system calls needs "extra space" on stack
int 0x80 ; make the system call
Скомпилируйте и свяжите его: -
nasm -f macho simple.asm
ld -o simple -e simple simple.o
Запустите его: -
asm $ ./simple
asm $ echo $?
1
В Интернете доступно множество бесплатных ресурсов для сборки x86, а также для Intel 64-bitподробности.
http://en.wikibooks.org/wiki/X86_Assembly
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
Посмотрите ресурсы для системных вызовов для ядра bsd и ядра mach для системных вызовов osx.
http://osxbook.com
http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html
http://peter.michaux.ca/articles/assembly-hello-world-for-os-x
Посмотрите на компоновщики и загрузчики, если вы хотите создать библиотеки.