260 261

260 261



260

gram przesyła z powrotem ze stosu zawartości rejestru A, wskaźników i rejestrów H i I>, umożliwia akceptację nowego przerwania (bowiem samo przerwanie powoduje blokadę następnych przerwań) i powraca do programu głównego do miejsca, w którym nastąpiło przerwanie.

6.4.2. Język adresów symbolicznych

Po przyjrzeniu się przedstawionym wyżej przykładom (i po próbach samodzielnego ich rozwiązania) widać, że przygotowywanie programów w języku maszynowym Jest bardzo uciążliwe. Szczególnie kłopotliwa jest konieczność wypisywania ciągów liczb dwójkowych będących kodami rozkazów oraz konieczność późniejszego ustalenia adresów przy skokach, ponieważ w chwili pisania rozkazu najczęściej nie jest jeszcze znany dokładny adres rozkazu, do którego chcemy skoczyć. Nadzwyczaj kłopotliwa są też zmiany w istniejącym programie: np. wstawienie na początku jednego dodatkowego rozkazu wymaga weryfikacji adresów w całym programie.

Aby usunąć te i inne niedogodności języka maszynowego, wprowadzono inne języki programowania o różnym stopniu komplikacji, których celem jest ułatwienie programowania. Pisząc programy w Językach wysoko zorganizowanych nie musimy zupełnie zwracać uwagi na adresy, zmienne określamy przez nazwy i często wręcz nie musimy wiedzieć, na jakiej maszynie program będzie wykonywany.

Programy napisane w językach różnych od maszynowego zwane są źródłowymi. Przed ich wykonaniem muszą zostać przetłumaczone na Język maszynowy. Oczywiście nie ma sensu, aby tłumaczenie takie wykonywał człowiek i zawsze wykonuje je maszyna zaopatrzona w odpowiedni program tłumaczenia zwany translatorem.

Bardzo prostym i niewiele odbiegającym od języka maszynowego jest tzw. język adresów symbolicznych, który pomimo swej prostoty znacznie ułatwia przygotowanie programów.

W Języku tym nadal operujemy rozkazami maszynowymi podatnymi uprzednio w liście rozkazów, przy czym różni się on od Języka maszynowego głównie tym, że:    _    .

1° liczby dwójkowe reprezentujące rozkazy i dane zastąpione zostają symbolami literowymi i liczbami dziesiętnymi lub szesnastkowymi,

2° liczby oznaczające adresy przy skokach zastąpione zostają umownymi nazwami, tzw. etykietami i te same nazwy pojawiają się przed rozkazami, do których ma się odbyć skok.

Poniżej omówimy skrótowo Język adresów symbolicznych procesora 8080. Ponieważ przygotowane w tym języku programy podlegają później zamianie na język maszynowy dokonywanej przez maszynę (program tłumaczący nazywa się tu assemblerem), dla uniknięcia niejednoznaczności muszą być zapisane w pewien ściśle określony sposób. Poszczególne rozkazy zapisywane są w pojedynczych wierszach i składają się z czterech oddzielnych części, tzw. pól, np.:

Pole etykiety. W pole to można wpisać dowolną etykietę służącą do określenia miejsca skoku. Etykieta może zawierać do 5 znaków zaczynających się od litery i nie może być nazwą rejestru, rozkazu ani dyrektywy. Po etykiecie musi nastąpić dwukropek. Etykieta w procesie tłumaczenia na język maszynowy zostanie zastąpiona przez określony adres.

Pole symbolu rozkazu. W pole to wpisuje się symbol rozkazu zgodnie z podaną wcześniej listą.

Pole ooerandów. W pole to wpisuje się dane lub adresy wymagane dla pełnego określenia użytego rozkazu. Jako operandy mogą być wymagane cztery różne informacje, które mogą być podane za pomocą dziewięciu różnych sposo-' bów, jak to pokazuje poniższa tabela.

Wymagana informacja

(a)    rejestr

(b)    para rejestrów

(c)    dane zawarte w 2 lub w 2 i 3 bajcie rozkazu

(d)    16-bitowy adres


Etykieta

DRUK:


Symbol l?Szkazu OUT


Operand    Komentarz

3    ; wywołanie wyniku


Sposoby podania informacji

(1)    liczba szestnastkowa

(2)    liczba dziesiętna

(3)    liczba ósemkowa

(4)    liczba dwójkowa

(5)    bieżący stan licznika rozkazów

(6)    stała w kodzie ASCII

(7)    nazwa

(8)    etykieta

(9)    wyrażenie Informacja o operandzie może więc być podana jako:

(1), (2), (3), (4) - liczba w jednym spośród czterech systemów, przy czym: po liczbie szesnastkowej należy napisać literę H, po dziesiętnej można napisać literę D, po ósemkowej należy napisać literę Q lub 0, zaś po dwójkowej należy napisać literę B. Ponadto, jeżeli liczba szesnastkowa zaczyna się od litery, to należy ją poprzedzić zerem.

(5)    - bieżący stan licznika rozkazów oznaczony przez $. Np.

JMP $ + 20

spowoduje skok do adresu większego o 20 od adresu, który posiadał wykonywany rozkaz JMP.

(6)    - ciąg znaków ASCII ujęty w górne przecinki. Każdemu ze znaków odpowiadała będzie 8-bitowa liczba reprezentująca go w kodzie ASCII, np.:

UVI A, ’B’ ,•    (A)    42H

(7)    - nazwa (maksymalnie 5 znaków zaczynających się od litery), której w czasie tłumaczenia przyporządkowana zostaje zadana przez programistę wartość liczbowa (patrz dyrektywy).

Nazwom rejestrów i pamięci (M) assembler automatycznie przypisuje ustalone liczby jak niżej:

B=0,    C=1,    D=2,    E=3,    K=4,    L=5,    M=6,    A=7.


Wyszukiwarka

Podobne podstrony:
260 ARTYKUŁY stwierdzenie Autorki, że podstawę konwersji katalogów w poszczególnych bibliotekach pow
260 Prezydent więc powiedzieć, że między działalnością rządu a kompetencjami prezydenta istr :e ;
Wstyd i przemo0131 260 Wstyd i przemoc fakt, że matka często, i to w obecności innych osób, spotykał
Kofta Niewierze Nie wierzę w powroty Nic mówmy więcej o tym Nic wierzę juz w powroty Że słowo,
MaszynaW 29 60 4. Program ćwiczeń stosie i pobrania ze stosu odpowiedniej komórki pamięci. Druga to
mądra elżunia3 Mąż nie mógł się doczekać jej powrotu, a że pragnienie jego rosło, postanowił zejść
9)    odpowiedniego reagowania na wszelką korespondencję, przesyłaną w związku z
Technika mikroprocesorowa ulega zmniejszeniu o 1, po programowym pobraniu ze stosu 1 bajtu (rozkazem
( 4- )44- Przewóz węgli. Po wydobyciu wszystkich węgli ze stosu trzeba ile bydź może uayryclilćy
Obserwator Historii OBSHRWATORjilSTORn Gdy Obserwator wchodzi do gry, wyjmij ze stosu kart odrzucony
DSCF0302 (2) Rozwój i cele stawiane inżynierii materiałowej Dziedzina rozwoju Komunikacja i przesył
141 3 276 i wychodzeniu z pętli (bez operacji FOP) adres ten powinien być usunięty ze stosu bez wyko

więcej podobnych podstron