172 17. Narzędzia programowania
5. pozostałe symbole (nazwy segmentów, nazwy określające adresy lub wartości liczbowe) nie mogą mieć więcej niż 31 znaków, przy czym pierwszym znakiem musi być litera lub znak podkreślenia ' ' albo znak zapytania Na kolejnych miejscach mogą znajdować się również cyfry.
6. etykiety - symboliczne adresy (nazwy umieszczone w miejscu programu do którego ma nastąpić skok) muszą zaczynać się od lewego marginesu bez spacji i muszą być zakończone dwukropkiem,
7. komentarze muszą być poprzedzone średnikiem. Komentarz nie jest przetwarzany przez asembler, ale jest przenoszony do zbioru generowanego przez asembler zawierającego listing programu lub do narzędzi testujących program. Służy do dokumentowania programu.
Linia programu źródłowego ma najczęściej następującą postać:
[etykieta:) mnemonik rozkazu [operand][,operand][,operand] [;komentarz]
elementy w nawiasach kwadratowych są opcjonalne, liczba operandów zależy od rozkazu, na przykład:
PF.TLA: DJNE RO,PĘTLA ;opóźnienie w wykonywaniu programu
Nazwa wejściowego zbioru źródłowego dla asemblera A51 powinna posiadać rozszerzenie ponieważ zbiór wyjściowy z. linkera nie zawiera rozszerzenia i nakryłby się ze zbiorem źródłowym, chyba że przy wywołaniu linkera zostałaby zadeklarowana nazwa zbioru wyjściowego z rozszerzeniem. Rozszerzenie nazwy zbioru źródłowego nie może być takie samo jak rozszerzenia zbiorów wytwarzanych w trakcie przetwarzania zbioru źródłowego do formatu INTEL-HEX, rysunek 17.1 Jeżeli zbiór źródłowy ma nazwę TEST.ASM, to podstawowe wywołanie asemblera, z pominięciem opcji, jest następujące:
A51 T0ST.A51
Asembler sprawdza czy zbiór źródłowy nie ma błędów w składni, w pisowni rozkazów i adresowaniu, za nazwy stałych podstawia odpowiednie wartości liczbowe, a za etykiety - odpowiednie adresy (dla segmentów' relokowal-nych są to adresy tymczasowe do momentu ich ustalenia przez linker). Następnie generuje dwa zbiory wyjściowe. Jeden z rozszerzeniem .lst (listing), w którym zbiór źródłowy jest rozszerzony o adresy i kody rozkazów, numerację wierszy oraz tablicę symboli użytych w zbiorze źródłowym wraz z określeniem ich typu i wartością lub adresem pod którym występują. Zawartość zbioru do listingu zależy od użytych przełączników przy wywołaniu asemblera lub poleceń asemblera umieszczonych w zbiorze źródłowrym. Drugi zbiór z rozszerzeniem .obj (object) jest zbiorem wejściowym dla linkera. Może być testowany narzędziami DSCOPEol (symulator DS51 i debugger TS51) firmy Keil.
Tekst źródłowy dla asemblera firmy Keil tworzy jeden moduł zaczynający się nazwą modułu i zakończony poleceniem END. Nazwa modułu może być zadeklarowana poleceniem NAME, na przykład:
NAME POMIARCZASU
Nazwa modułu nie może zawierać spacji, nie może zaczynać się od cyfry i nie może mieć więcej niż 40 znaków. Jeżeli nazwa nie jest deklarowana poleceniem NAME, to jako nazwa modułu zostanie przyjęta nazwa zbioru źródłowego bez rozszerzenia.
Polecenie END jest ostatnim elementem zbioru źródłowego analizowanym przez asembler. Wszystko co .jest poza tym słowem jest przez asembler pomijane. Brak tego polecenia jest sygnalizowane przez asembler jako błąd.
Asembler A51 jest bezpośrednio przystosowany do przetwarzania programów odwołujących się do rejestrów mikrokontrolera 8051. Przy pisaniu programów dla mikrokontrolerów zawierających dodatkowe rejestry należy w programie źródłowym powiązać ich nazwy z odpowiadającymi im adresami w obszarze SFR. Można to zrobić albo przez bezpośrednią deklarację używanych rejestrów, np. wprowadzić linie:
P5 DATA 0F8H
ADCON DATA 0D8H
albo przez dołączenie odpowiednim poleceniem zbioru zawierającego listę przypisań adresów do rejestrów dla danego mikrokontrolera. Stosowane polecenia zależą od wersji asemblera. Dla wersji V4.4 dołączenie zbioru odbywa się następująco:
SNOMOD51
SINCLUDE (reg515.inc)
gdzie: NOMOD51 - dyrektywa asemblera wyłączenia przypisań adresów do rejestrów i znaczników dla mikrokontrolera 80(C)51,
INCLUDE -dyrektywa asemblera dołączenie zbioru o podanej nazwie, w tym przypadku zbioru reg515.inc, zawierającego odpowiednie przypisania dla mikrokontrolera SAB80(C)515.
$ - przełącznik
Zawartość dołączonego zbioru zostanie również umieszczona w zbiorze wyjściowym z rozszerzeniem .lst. Można tego uniknąć przez użycie odpowiedniego polecenia:
SNOLIST
SNOMOD51
SINCLUDE (reg515.inc)
SLIST