Asembler x86/Podstawy: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
→Komentarze: gnu as |
Nie podano opisu zmian |
||
Linia 11:
etykieta:
Etykieta musi znajdować się na początku linii i być niepoprzedzona niczym innym. Gdy już połączymy to z naszą dotychczasową wiedzą o korzystaniu z instrukcji, możemy napisać prosty przykład:
<
Od tej pory, gdy będziemy chcieli odnieść się do tego adresu (np. gdy zechcemy przeskoczyć w wykonaniu naszego programu bezpośrednio w miejsce z naszą instrukcją ''mov''), możemy napisać po prostu:
<
zamiast podawać cyferki adresu w pamięci (instrukcja jmp modyfikuje rejestr [[../Architektura#EIP|EIP]], przez co procesor "przeskakuje" do innego kodu; więcej o tej instrukcji w rozdziale [[../Funkcje|Funkcje]]). Dodatkowo, poprzedni kod, który zdefiniowaliśmy, jest równoznaczny z poniższym:
<
etykieta:
movl %ecx, %eax
</syntaxhighlight>
Jak zapewne zauważyłe(a)ś, definicja etykiety podczepia się automatycznie pod najbliższą linijkę (jednak nie zawsze obowiązuje ta zasada!).
== Komentarze ==
Komentarz jest to po prostu notatka mająca ułatwić zrozumienie danego fragmentu kodu innym, którzy będą go czytać oraz przede wszystkim temu, kto go napisał. Jeśli programista daruje sobie komentowanie kodu, orientowanie się w nim będzie zajmowało mu więcej czasu, lub też zajmie mu to nieskończoną ilość czasu, gdyż z obłędem w oczach skasuje całą swoją pracę nie mogąc zrozumieć ani jednej linijki. Komentarze istnieją jedynie na poziomie kodu źródłowego, po kompilacji nie pozostaje po nich żaden ślad. Aby uczynić dowolny tekst komentarzem i tym samym wyłączyć go z procesu asemblacji, należy poprzedzić go średnikiem. Średnik zamienia w komentarz wszystko, co znajduje się za nim, aż do końca linii.
<
'''Asembler MASM''' umożliwia jeszcze jedną metodę komentowania:
Linia 34:
'''GNU Assembler''' z kolei ma zupełnie inną składnię komentarzy. Aby objąć dowolny blok komentarzem, należy umieścić go między /* oraz */ (zapewne ten sposób komentowania jest znajomy dla programistów C). W przypadku tego asemblera, dozwolone jest również używanie znaku # , który ma identyczne działanie jak znak ; (średnik) w przypadku innych asemblerów. np.
<
# to jest komentarz
</syntaxhighlight>
<
/* to jest komentarz
to też jest komentarz */
to już nie!
</syntaxhighlight>
== Struktura kodu asemblera ==
|