266
Korzystną cechą większości assemblerów Jest zdolność wyk£J>anln podstawowych błędów formalnych i sygnalizowania ich poprzez wydruk odpowiedniego komunikatu po wykryciu każdego błędnego rozkazu, np.
NIE^GAINY SYMBOL ROZKAZUj użyto niewłaściwego symbolu rozkazu, NIEDOZWOLONA Y.ARTOSC ; wartość liczby przekroczyła górną granicę fcip.
• usiłowano wpisać do rejestru liczbę 32J1)
NIEZDEFINIOWANI 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 niż w Języku maszynowym.
Przykład 6.5
Poniżej |
podano progri | |
avi |
C, DANE + 6 | |
START: |
DCI |
H, DANE |
nr |
0 | |
110V |
B,A | |
TEST: |
MOF |
A.B |
ANA |
U | |
na |
H | |
CUP |
U | |
JZ |
DRUK1 | |
na |
H | |
KOT |
A, L | |
CUP |
C | |
JNZ |
TEST | |
MVI |
A.o | |
DR : |
OUT |
0 ' |
JMP |
START | |
DRUK1: |
MVI |
A.OFFH |
JMP |
DR | |
DANE: |
DB. |
ODOH, OCOH, |
END |
z przykładu 6.2 napisany w Języku symbolicznym
Z porównania obu tych programów widać, żs w powyższym przestaliśmy zwracać uwagę na podawanie adresów przy skokach i 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 . tt
Oprócz Języków symbolicznych opracowano szereg wyżej zorganizowanych języków. Języki te postaoią swych instrukcji i zasadami przygotowania programów bardzo różnią się od języków maszynowych ozy symbolicznych, a często wręoz 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. AICOL, FORTRAN, BASIC lub językami specjalizowanymi wygodnymi dla węższej grupy zadań jak np. GPSS, SIMtJIA, 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ę p.K (stosunkowo krótkie słowo, mała pamięć 1 typowe zastosowania) opracowano wysoko zorganizowany, uniwersalny język z myślą o wykorzystaniu go w jaK. Język ten nosi nazwę PUM i Jest uproszczoną wersją Języka PŁ 1 firmy IBM. Poszczególne firmy produkujące jaP i |aK opracowują kompilatory tłumaczące programy źródłowe napisane w Języku PUM na programy w Języku maszynowym. Omówienie języka programowania PUM wybiega poza ramy niniejszego podręcznika.
6.5. POŁĄCZENIE JJ.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 (interface). Firmy produkujące |aP oferują szeroki asortyment scalonych układów pośredniczących. Zadaniem inżyniera zajmującego się zastosowaniem p.K 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.
Si
A-
V-
kana PANYCU
PAMIĘĆ |
IWZAOUNfA WE/WY | |||
MTBtnjS |
MTOFCJS |
nYM AttttftWA
U
Rys. 6.13. Schemat blokowy mikrokomputera
Schemat blokowy p. 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-