Zapoznaj się z Assembly-HOWTO, zazwyczaj w katalogu /usr/doc/Linux-HOWTO's,
gdzie podane jest mnóstwo powodów dla których nie warto pisać w asmie.
Przede wszystkim, jeżeli piszesz coś w asmie, efektem jest program
nieprzenośny . Po drugie, sam się często przekonałem, że gcc potrafi
często wyprodukować szybszy i mniejszy kod niż ja. Warto zawsze napisać
coś w C i dopiero potem to samo w asmie, i swój kod w asmie akceptować dopiero wtedy
gdy jest mniejszy i szybszy od tego napisanego w C. Pisanie w assemblerze dla samego pisania nie ma
sensu. Najlepiej, gdy przekonasz się że kod napisany w C jest lepszy, sprawdź
jak gcc przetłumaczył go na assembler, jest to najlepsza droga do nauki :
gcc nazwa_twojego_programu -S nazwa_programu_przetłumaczonego_na_assembler
Możesz również dissasemblować istniejące programy za pomocą ndisasma
(disasembler z dystrubucji Nasma) lub objdump --disassemble. Istnial kiedys do niego
,,frontend'', właściwie programik przerabiający output na html
znajdujacy się na stronie A.Radeckiego tutaj . Obecnie strona ta jest niestety nieaktywna.
W całym dokumencie opisuję assembler x86. Opis assemblerów na inne maszyny
pojawi się może... może... Czasu mam coraz mniej a roboty coraz więcej
więc uaktualnienia dokumentu pojawiać się będą rzadko.
Co do nieprzenośności programu w assemblerze, proponuję zawsze obok kodu assemblerowego
umieszczać kod w C, i użyć odpowiedniego define'a. Mamy z głowy i komentarz,
i przenośność.