A.D.Danilecki , 66-200 Świebodzin, Polska
W tej chwili szopen@aurora.put.poznan.pl
lub szopen@arrakis.cs.put.poznan.pl
Poznań, 61-142 Ul.Św Rocha 11b
Adres powyższy aktualny na pewno do wakacji 2000 roku
Krótki wstęp do programowania z wykorzystaniem inline assemblera x86

TO JEST WERSJA 0.6 TEGO TEKSTU - CZYLI WCIĄŻ BETA PROSZE O KOMENTARZE, TYCZĄCE STYLU, EWENTUALNYCH BŁEDOW ITD JEŻELI SAM DAŁBYŚ RADE LEPIEJ NAPISAĆ NINIEJSZY DOKUMENT, PROSZE O KONTAKT A PRZEKAŻE WSZYSTKIE MATERIAŁY W MOIM POSIADANIU
18 października 1999 . Wszystkie linki zamieszczone w tekście do tego dnia istniały (were valid) o ile nie jest podane inaczej w tekście avly@castle.net - adres nieaktualny, nie znam nowego adresu



2. Punkt pierwszy : Dlaczego nie używać assemblera .


NEXT - Punkt 2 : Zasady ogólne
PREV - Wstep : Jak pisac w assemblerze z wykorzystaniem gcc

do spisu treści

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, do którego ,,frontend'', właściwie programik przerabiający output na html znajduje się na stronie A.Radeckiego tutaj .

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ść.



NEXT - Punkt 2 : Zasady ogólne
PREV - Wstep : Jak pisac w assemblerze z wykorzystaniem gcc