264
Lista zawiera jedną lub więcej oddzielonych przecinkami informacji w dowolnej z wcześniej omówionych postaci dających liczby 8-bltowo. Dyrektywa DB umieszcza te dane w programie wynikowym pod kolejnymi adresami(począwszy od adresu wskazanego przez jej etykietę. Np. dyrektywa
DANE: DB 2, 13, 4EH, 6CH
powoduje wpisanie do czterech kolejnych bajtów programu wynlkowugo liczb 15, 4EH, 6CH począwszy od adresu DANE.
DW lista Zdefiniuj słowa danych (Define Words of Data)
Lista zawiera jedną lub więcej oddzielonych przecinkami informacji w dowolnej z wcześniej omówionych postaci dających liczby 16-bitowe. Dyrektywa DW umieszcza te dane w kolejnych parach bajtów programu wynikowego począwszy od adresu wskazanego przez Jej etykietę. Mniej znaczące osiem bitów umieszczone Jest pod niższym adresem, zaś bardziej znaczące pod adresem zwiększonym o jeden. Np.
GDZIE: DW AU, AS, BUDA
definiuje zawartość sześciu kolejnych bajtów programu wynikowego począwszy od adresu GDZIE, wpisując do nich wartości przypisane etykietom AU, AS, BUDA.
DS data 16 Rezerwuj pamięć (Define Storage)
Dyrektywa ta powoduje zarezerwowanie (ominięcie przez kolejne rozkazy programu wynikowego) wskazanej ilości bajtów, począwszy od adresu wskazanego przez jej etykietę. Bajty te później mogą służyć do zapamiętywania wyników pośrednich.
Np.
RHZ: DS 20
powoduje, że w programie wynikowym zostanie zarezerwowane (opuszczone) 20 bajtów począwszy od adresu określonego przez etykietę REZ.
END Koniec programu (End of Assembly)
Dyrektywa ta informuje assembler, że zakończył się program w języku symbolicznym i że należy rozpocząć tłumaczenie i ewentualny wydruk wynikowego programu maszynowego.
IE data 16 i ENDIF Program warunkowy (Conditional Assembly)
Dyrektywą IF poprzedza się wybrany fragment programu, a po Jego końcu umieszcza się ENDIF. Program tłumaczący bada warte'i wyrażenia przy dyrektywie IF. Jeżeli jest ono równe zeru, to część programu pomiędzy IF i ENDIF jest ignorowana w czasie tłumaczenia. Np.
IF WAR
. fragment programu
ENDIF
O
Jeżeli teraz przed dyrektywą IF WAR umieścimy dyrektywę WAR EQU O
to fragment ten nie zostanie przetłumaczony.
MaCRO lista i ENDM Definicja makrorozkazu (Macro definition)
Jest to dwuczęściowa dyrektywa pozwalająca definiować własne rozkazy, zwane makrorozkazami. Np. sekwencja
IMPL MACRO R CMA
ORA R ENDM
definiuje makrorozkaz IMPL, który oblicza funkcję implikacji pomiędzy rejestrem A i wskazanym rejestrem R
(A) — (A) —(R)
Jeżeli teraz w programie pojawi się rozkaz IMPL B
to spowoduje on wpisanie do rejestru A implikacji zawartości rejestru A i rejestru B.
Wykorzystanie zdefiniowanej przez MACRO nazwy nie jest'równoważne zastosowaniu procedury, ponieważ każdemu użyciu tej nazwy w programie symbolicznym odpowiada pojawienie się w programie całej sekwencji rozkazów definiujących tę nazwę.
Przedstawiliśmy powyżej zasady tworzenia programu w języku symbolicznym procesora 8080. Program napisany w tym języku musi zostać przetłumaczony na język maszynowy, czyli ciąg liczb 8-bitowych. Tłumaczenia takiego może dokonać inny komputer,lub jaK, w którym program ten będzie wykonywany .
W pierwszym przypadku do komputera zaopatrzonego w program tłumaczący (tzw. cross-assembler) jako dane wprowadzony jest (np. na kartach perforowanych) program w języku symbolicznym. Na programie tym operuje program tłumaczący i jego wynikiem jest program maszynowy, który wyprowadzony zostaje na kartach, taśmie papierowej lub magnetycznej lub wydrukowany na drukarce. Program ten następnie zostaje wprowadzony no pamięci właściwego p.K, w którym ma być wykonywany.
W przypadku drugim, gdy tłumaczenie wykonywane jest (przez program zwany resident-assembler) w tym samym mikrokomputerze, w którym program będzie wykonywany, wynikowy program maszynowy zostaje od razu wprowadzony do pamięci operacyjnej i następnie na sygnał z zewnątrz wykonany.
Programy tłumaczące typu assembler są najczęściej opracowywane i sprzedawane przez firm? produkującą dany jaK. Różnorodność oferowanych programów tłumaczących wpływa między innymi na popularność i zbyt danego jaK. Programy typu cross-assembler są często opracowane w powszechnie stosowanych językach programowania jak na przykład FORTRAN, czyli nogą być używane we wszystkich komputerach posiadających cen język.