Informacje dodatkowe     Dyrektywy kompilatora


Dyrektywy to polecenia dla kompilatora, które służą m.in. do: tworzenia obszarów danych w programie
wykonywalnym, przypisywania etykietom adresu stałego w całym kodzie źródłowym, a także do stero-
wania pracą kompilatora. Niżej znajdują się dyrektywy, obsługiwane przez większość kompilatorów:

DC (Define Constant data) - służy do tworzenia obszarów danych, o dowolnych wartościach,
                      które będą znajdowały się w programie wykonywalnym. Np.:

DC.b $20,@377+1,10+1*2,2 = $20,$00,$16,$02
DC.b $2A,"Text",0,1,$0A = $2A,$54,$65,$78,$74,$00,$01,$0A
DC.w 200,$65FF,20/2,0 = $00C8,$65FF,$000A,$0000
DC.l $20304050,$0A+1,2,3+1 = $20304050,$0000000B,$00000002,$00000004

Wartości danych natychmiastowych po dyrektywie DC, podaje się bez znaku "#". Dyrektywa DC.w,
DC.l, ani żadna instrukcja nie może być zapisana w miejscu, o nieparzystej liczbie bajtów. Jeśli dyre-
ktywą DC.b na końcu kodu, zostanie stworzony obszar danych o nieparzystej liczbie bajtów, to kom-
pilator Master Seka 1.1 uzupełni program wykonywalny, 1 lub 3 bajtami o wartości $00 tak, aby jego
rozmiar był podzielny przez 4.

EQU (EQUate symbol) - służy do przyporządkowania etykiecie dowolnego adresu. Adres zdefiniowany
                    na jeden z poniższych sposobów, nie może być zmieniony i jest stały w całym
                    kodzie źródłowym:

NAZWA: EQU ADRES lub NAZWA=ADRES - nazwa etykiety w kodzie źródłowym może być zapisana
zarówno przed, jak i po takiej definicji. Adres można zapisać dowolnym wyrażeniem matematycznym.
Jeśli adres nie zostanie podany, oznacza wartość 0.

NAZWA: EQU NAZWA2 lub NAZWA=NAZWA2 - przed taką definicją musi być znany adres etykiety
NAZWA2 (musi ona znajdować się wcześniej w kodzie źródłowym). Jeśli etykiecie NAZWA zostanie
przypisana zwykła etykieta NAZWA2, to na etykiecie NAZWA będzie można przeprowadzać tylko
operacje dodawania i odejmowania oraz nie będzie można jej zapisać ujemnie. Nazwa etykiety
w kodzie źródłowym może być zapisana zarówno przed, jak i po takiej definicji.

END - służy do oznaczenia końca pliku źródłowego. Wszystko, co znajduje się w pliku źródłowym za tą
           dyrektywą, będzie zignorowane przez kompilator. Użycie dyrektywy END nie jest konieczne.
           Jej brak oznacza, że cały plik źródłowy ma być przetwarzany.

W programie Master Seka 1.1 nie działają następujące dyrektywy:

DCB.b,w,l <x>,<data> (Define Constant data Block) - tworzy w programie wykonywalnym blok danych,
                                        który składa się z <x> bajtów/słów/długich słów,
                                        o podanej wartości <data>.

DS.b,w,l <x> (Define Storage) - rezerwuje <x> bajtów pamięci.

ORG=ADRES (set ORiGin) - ustawia wartość licznika lokacji.

NAZWA: REG <list> (define REGisterlist symbol) - przyporządkowuje listę rejestrów jakiejś nazwie.

NAZWA: SET ADRES (SET symbol) - działa analogicznie do dyrektywy EQU, ale adres przypisany
                             dyrektywą SET można ponownie zdefiniować, w dalszej
                             części kodu.