Elementy języka asembler
Program źródłowy napisany w języku asemblera składa się z:
• instrukcji zapisanych w postaci symbolicznej,
• etykiet,
• dyrektyw,
• stałych liczbowych,
• napisów oraz nazw zdefiniowanych przez programistę.
Ich format zapisu jest określony i jednoznaczny. Jako nazwę (nazwę o szerokim znaczeniu) należy rozumieć każdy zapis, czyli ciąg znaków składający się liter, cyfr oraz znaku podkreślenia "_" zaczynający się od litery lub znaku podkreślenia. Stosuje się je do szeroko pojętego rozróżniania wszystkich części składowych programu (nazwy zmiennych, procedur, etykiet). Liczby to są zapisy składające się cyfr (oraz liter od "a" do "f" w przypadku liczb w zapisie szesnastkowym). Mogą być one zapisane w systemie dziesiętnym, szesnastkowym (hex) lub dwójkowym (binarnym). Do rozpoznania systemu zapisu liczb używane są pewne prefiksy poprzedzające samą liczbę, są to:
• 0x (zero i x) lub znak $ dla liczb zapisanych szesnastkowo,
• 0b (zero i b) dla liczba zapisywanych dwójkowo.
Jeżeli liczba nie jest poprzedzona żadnym prefiksem określającym system zapisu, to przyjmowane jest, że liczba zapisana w systemie dziesiętnym. Przykłady liczb:
• 10 - liczba w zapisie dziesiętnym,
• 255 - liczba w zapisie dziesiętnym,
• 0x0A - liczba w zapisie szesnastkowym,
• $FF - liczba w zapisie szesnastkowym,
• 0b11010011 - liczba w zapisie dwójkowym.
Napisy są to stałe tekstowe, które zapisywane są jako ciąg dowolnych znaków ujęty w apostrofy. Każdy znak z napisu jest zamieniany na liczbę wynikającą z przyporządkowania znakom określonych kodów liczbowych zgodnie z powszechnie obowiązującą normą ISO.
Komentarz w języku asemblera zaczyna się od znaku ";" (średnik) i obowiązuje do końca wiersza. W komentarzu mogą być zawarte dowolne znaki. Kompilator nie analizuje informacji zawartych w komentarzu.
[5] Każda linijka programu może zawierać maksymalnie 120 znaków. Każda linijka programu napisanego w asemblerze może mieć jedną z poniższych postaci:
[etykieta:] dyrektywa [argumenty] [komentarz]
[etykieta:] instrukcja [argumenty] [komentarz]
komentarz
pusta linia
gdzie [komentarz] ma postać ; [tekst]
Przykłady:
etykieta: .EQU var1=100 ; var1 przyjmuje wartość 100 (dyrektywa)
.EQU var2=200 ; var2 przyjmuje wartość 200
test: rjmp test ; nieskończona pętla (instrukcja)
; linia komentarza
; inny komentarz