Informacje dodatkowe     Opis asemblera procesora MC68000


Plik źródłowy z kodem maszynowym (mikrokodem) procesora MC68000, może zawierać teoretycznie
nieograniczoną liczbę linii. W praktyce ograniczeniem jest pojemność pamięci RAM i twardego dysku
komputera. Również same kompilatory nakładają swoje ograniczenia, co do liczby linii oraz ich długości.
Najlepiej przyjąć, że linia nie powinna być dłuższa niż 255 znaków. W każdej linii kodu może znajdować
się tylko jedna instrukcja procesora lub dyrektywa kompilatora. Każda linia może składać się maksy-
malnie z czterech elementów:

Etykieta:     Mnemonik:    Argumenty:   Komentarz:
  A:     move.b    #$F0,D7  ;przenosi bajt $F0 do rejestru D7.

Oczywiście nie wszystkie one występują w każdej linii kodu. Linia nie musi zawierać etykiety, komen-
tarza i argumentów (np. instrukcja RTS, dyrektywa END) lub może zawierać jeden argument (np. instru-
kcja CLR.b D0, dyrektywa DC.b $0A). Etykieta, komentarz i instrukcje lub dyrektywy bez argumentów,
mogą być zapisywane w osobnych liniach. Można również tworzyć linie puste, zawierające sam ENTER
lub [DP]. Między początkiem linii kodu i dowolnymi jej elementami może, ale nie musi być [DP]. Jednak
dla zachowania czytelności i przejrzystości, należy zastosować przynajmniej jedną spację lub tabulator.
Za ostatnim elementem w linii również może, ale nie musi wystąpić [DP]. Kompilator nie rozróżnia
dużych i małych liter w nazwach etykiet, instrukcji, dyrektyw i argumentach. Oznacza to, że znaki
"a" i "A" określają tą samą literę (np. NAZWA=nazwa=nAzWa).

ETYKIETA - nazwa etykiety musi rozpoczynać się literą A-Z, następnie można używać cyfr 0-9 i znaku
"_". Nazwa nie może zawierać przerw. [DP] może wystąpić między nazwą i dwukropkiem, którym musi
być zakończona etykieta. Nazwa etykiety musi składać się minimum z jednej litery. Etykieta nie może
nazywać się tak samo, jak jeden z rejestrów procesora: D0-D7, A0-A7, SR, CCR, USP, SP, SSP oraz
PC. Jeśli etykieta jest zapisana w oddzielnej linii, to reprezentuje dane znajdujące się pod nią. Długość
nazwy etykiety może być dowolna. W kodzie źródłowym nie może być dwóch etykiet, o identycznych
nazwach. Natomiast do jednej etykiety można odwoływać się dowolną liczbę razy. Etykieta jest symbo-
liczną nazwą rzeczywistego adresu komórki pamięci, więc może być argumentem zarówno wejściowym,
jak i wyjściowym. Etykiet reprezentujących jakiś adres można używać, jako danych natychmiastowych.
W tym celu należy przed nazwą etykiety, napisać znak "#" (#NAZWA).

MNEMONIK - nazwa instrukcji procesora lub dyrektywy kompilatora, nie może zawierać przerw.
Jeśli instrukcja lub dyrektywa w nazwie posiada kropkę, to między nią, a nazwą i rozmiarem instrukcji
lub dyrektywy może być [DP] (np. move  .  b, dc  .  b).

ARGUMENTY - nazwa argumentu nie może zawierać przerw. Argument musi być zapisany w jednej
linii, zaraz za instrukcją lub dyrektywą. Jeśli instrukcja lub dyrektywa posiada dwa lub więcej argu-
mentów, to zwykle są one oddzielone przecinkiem. Wyjątkiem jest instrukcja MOVEM, której argumenty
są dodatkowo oddzielone minusem i/lub ukośnikiem (znakiem dzielenia "/"). Jeśli argumentem jest
nazwa symbolizująca adres, to musi ona wystąpić w kodzie jako etykieta (NAZWA:) lub jej definicja
(NAZWA=ADRES, ew. NAZWA=NAZWA2).

KOMENTARZ - może mieć dowolną treść, rozpoczynającą się średnikiem ";". Komentarz może być
pusty (sam ENTER lub [DP]). Wszystko, co zostanie napisane po średniku do końca linii, zostanie
zignorowane przez kompilator. Długość komentarza może być dowolna.

[DP] może wystąpić między następującymi znakami: "#", "(", ")", ",", ".", "+", "-", "*", "/", ":", "=", ";".

[DP] - dowolna przerwa, zawierająca spacje i/lub tabulatory. Jej długość jest ograniczona
          przez maksymalną liczbę znaków w jednej linii kodu, jaką przyjmuje kompilator.