266
Korzystną cechą większości assemblerów Jest zdolność wykfętamln podstawowych błędów formalnych i sygnalizowania ich poprzez wydruk odpowiedniego komunikatu po wykryciu każdego błędnego rozkazu, np.
NIEA UJ Y SYMBOL ROZKAZU; użyto niewłaściwego symbolu rozkazu, NIEDOZWOLONA \'iARTOŚC ; wartość liczby przekroczyła górną granicy fap.
■ usiłowano wpisać do rejestru liczbę J2J1)
NIEZDEFINIOWANY SYMBOL ; Nie zdefiniowano symbolu wymagającego definicji.
Ilo$ć i precyzja komunikatów o błędach Jest różna dla różnych wersji programów tłumaczących.
Biorąc powyższe pod uwagę, przygotowanie programów i ewentualne usuwanie błędów w Języku symbolicznym Jest znacznie prostsze nlł w Języku maszynowym.
Przykład 6.5
Poniżej podano program z przykładu 6.2 napisany w Języku symbolicznym
MYI |
C, DANE * 6 | |
START: |
Ul |
H, DANE |
IN |
0 | |
MOV |
B.A | |
TEST: |
MOV |
A.B |
AHA |
U | |
INK |
H | |
CUP |
U | |
JZ |
DRUKI | |
m |
H | |
uov |
A, L | |
CUP |
C | |
JNZ |
TEST | |
UTI |
A.O | |
DR : |
OUT |
0 |
JMP |
START | |
DRUK1: |
MYI |
A,OFFH |
JMP |
DR | |
DANE: |
DB |
ODOH, OĆOH, 47H, 05H, 28H, OH |
END |
Z porównania obu tych programów widać, że w powyższym przestaliśmy zwracać uwagę na podawanie adresów przy skokach 1 pobieraniu danych z pamięci, zastępując Je etykietami. Ewentualna korekta programu) np. wstawienie lub usunięcie jednego lub kilku rozkazów nie powoduje konieczności zmian adresów przy rozkazach skoku, co byłoby konieczne w przypadku języka maszynowego . tf
Opróoa języków symbolicznych opracowano szereg wyżej zorganizowanych języków. Języki te postaolą swych instrukcji i zasadami przygotowania programów bardzo różnią ślę od języków maszynowych czy symbolicznych, a często wręcz nie mają z nimi nic wspólnego, natomiast są bardzo wygodnymi dla
programisty. Języki takie są bądź uniwersalnymi Językami dla rozwiązania problemów jak np. AIGOŁ, FORTRAN, BASIC lub językami specjalizowanymi wygodnymi dla węższej grupy zadań Jak np. GPSS, SBfiJIA, LISP. Programy przygotowane w językach wysoko zorganizowanych mogą być wykonywane na dowolnej maszynie zaopatrzonej w program tłumaczący (kompilator) program źródłowy na program maszynowy.
Ze względu na specyfikę jaK (stosunkowo krótkie słowo, mała pamięć 1 typowe zastosowania) opracowano wysoko zorganizowany, uniwersalny język z mydlą o wykorzystaniu go w jaK. Język ten nosi nazwę PI/11 1 jest uproszczoną wersją języka PL 1 firmy IBM. Poszczególne firmy produkujące jiP i |iK opracowują kompilatory tłumaczące programy źródłowa napisane w Języku PI/M na programy w Języku maszynowym. Omówienie języka programowania PI/M wybiega poza ramy niniejszego podręcznika.
6.5. POŁĄCZENIE |i.P Z OTOCZENIEM
Zajmiemy się tu zagadnieniem połączenia jaP z pamięcią i urządzeniami we/wy. Połączenie i właściwą współpracę bloków systemu zapewniają układy pośredniczące (lnterface). Firmy produkujące jaP oferują szeroki asortyment scalonych układów pośredniczących. Zadaniem inżyniera zajmującego się zastosowaniem jaK Jest wybór takich gotowych układów, ewentualne uzupełnienie ich uniwersalnymi układami cyfrowymi i zaprojektowanie interfejsu optymalnie dopasowanego do potrzeb. Często konstruktor może korzystać ze standardowych publikowanych schematów lub wręcz nabyć jeden z gotowych systemów oferowanych przez firmy produkujące jaP bądź zajmujące się właśnie zestawianiem jaK z produkowanych układów.
Schemat blokowy ja K przedstawiony został na rys. 6.13.
W urządzeniu tym Jako pamięć stosuje się pamięci półprzewodnikowe typu RAM lub ROM. Typowymi urządzeniami we/wy są dalekopisy, konwertery analo-