250 251

250 251



250

Rozkazy powrotu. Rozkazy te (RET, Rcondition) powodują, przepisanie * zawartości pary komórek ze szczytu stosu do licznika rozkazów. Zwykle jest to zawartość licznika rozkazów wpisana do stosu rozkazem skoku do podprogramu, co powoduje powrót do miejsca w programie, w którym wystąpił ten rozkaz skoku.

Rozkaz restartu (RST) jest jednobajtowym rozkazem skoku do podprogramu. Trzybitowy adre3 skoku zawarty w kodzie operacyjnym pozwala na Wykonanie skoku do jednego z ośmiu adresów 0,8,16,24-,32,40,48,56, zależnie od liczby restartowej. Rozkaz restartu zwykle używany jest przy obsłudze przerwań, co będzie omówione później.

Rozkazy operacji na stosie. Często w trakcie wykonywania programu zachodzi potrzeba przerwania dotychczasowego ciągu obliczeń i przejścia do innego fragmentu programu (podprogramu), po wykonaniu którego powinien nastąpić powrót do miejsca, w którym wystąpiło przerwanie. Aby ten powrót umożliwić, procesor musi przed wykonaniem skoku do podprogramu zapamiętać bieżący stan licznika rozkazów, by pod koniec podprogramu z powrotem go tam wpisać. Często zachodzi również potrzeba zabezpieczenia bieżącej zawartości rejestrów i wskaźników przed zniszczeniem w czasie wykonywania podprogramu. Dla ułatwienia tych operacji wprowadzono w omawianym p.P tzw. stos programowy. Jest to obszar w pamięci zewnętrznej RAM zarezerwowany do wpisywania i odczytywania w kolejności UFO zawartości rejestrów,wskaźników i licznika rozkazów.

Zapisywanie danych w stosie (PUSH) odbywa się w ten sposób, że zawartość wskazanej pary rejestrów zapisywana jest w pamięci pod dwoma kolejnymi malejącymi adresami wskazanymi przez zawartość wskaźnika stosu ((SP)-1 i (SP)-2). Każde wpisanie pary danych do stosu powoduje automatyczne zmniejszenie zawartości wskaźnika stosu o 2. W ten sposób dane umieszczane są w kolejnych komórkach pamięci o malejących adresach, zaś we wskaźniku stosu znajduje się adres ostatnio wpisanej danej.Początkową zawartość wskaźnika stosu, czyli obszar pamięci przeznaczony na stos, można zadać rozkazem 1X1 SP lub SPHL. Przykładowe zawartości rejestrów, wskaźnika stosu i stosu przed i po wykonaniu rozkazu PUSH przedstawiono na rys. 6.7.

HM# WWOMAMOM_,    KO WYKONANIU

" K0ZKA1ÓW PIKU

—ł—

HOlKAlń* PUSH "

SP t 00 ' CA I

I 00 ' CO | SP

00

SE

00

00

5F

00

S.C | 05' DA |

00

(0

>3

[ OS ' Dl I 0.C

00

01

SC

00

(Z

DA

H.L 1 SC ' 05 1

00

Cl

OJ

1 SC ' 13 I H.L

00

u

00

Rys. 6.7. Zawartość rejestrów, wskaźnika stosu i stosu przed i po wykonaniu rozkazów PUSH B i PUSH H. Wszystkie liczby podane są w kodzie szesnastkowym

Odczytywanie zawartości stosuct^JOP) odbywa się w ten sposób,"że jednorazowo odczytana zostaje para danych z dwu kolejnych komórek pamięci o adresach wskazanych przez zawartość wskaźnika stosu ((SP) i (SP) + 1) oraz umieszczona w wybranej parze rejestrów wewnątrz procesora. Po wykonaniu tej operacji zawartość wskaźnika stosu automatycznie zwiększa się o 2.

Przykładowe zawartości rejestrów, wskaźnika stosu i stosu przed i po wykonaniu rozkazu POP przedstawiono na rys. 6.8.

NIC* WYKONANIEM

W3 WYKONANIU

ROZKAZÓW POP

n

V| 1

ftOlKAZÓW TOP

W I 00 ' M I

00

SD

00

1 00 ' (A 1 ST

00

SE

10

00

5f

00

S.C I 00 ' 00 I

u

U

u

1 05 ' DA 1 D.C

«.c

11

te

DA

il

DA

h.i rss sn

o;

(3

OS

1 AC ' 13 1 H.L

00

U

00

Rys. 6.8. Zawartość rejestrów, wskaźnika stosu i stosu przed i po wykonaniu rozkazów POP H i POP B

Z powyższych przykładów widać, że dla zapisywania danych w stosie wystarczy szereg kolejnych rozkazów PUSH, zaś dla ich przepisania z powrotem do odpowiednich rejestrów, szereg ułożonych w odwrotnej kolejności rozkazów POP. Adresowanie wykonuje się poza udziałem programu, przez automatyczne zmniejszanie i zwiększanie wskaźnika stosu.

Zawartość licznika rozkazów jest wpisywana do stosu przy pomocy rozkazów CALL i RST, zaś ponownie wpisywana do licznika rozkazów rozkazem RET.

Rozkazy wejścia/wy.iścia powodują przesyłanie szyną D danych pomiędzy rejestrem A a wskazanym urządzeniem zewnętrznym. Po otrzymaniu rozkazu IN lub OUT procesor wysyła status CZYTAJ Z I7SJŚCIA lub PISZ NA '.'.TJśCIE oraz na szynie adresowej, numer urządzenia we/wy, z którym chce się skomunikować. Status ten, wraz z pozostałymi sygnałami sterującymi, powoduje połączenie szyny danych z żądanym urządzeniem wejściowym lub wyjściowym. Technika realizacji takiego połączenia będzie omówiona później.

Rozkazy sterujące decydują o akceptacji żądań przerwania ustawiając (El) lub zerując (DI) wewnętrzny przerzutnik INTE, zatrzymują działanie jaP (HLT) lub opóźniają je o określoną liczbę cykli zegarowych (NOP).

6.5.6. Przerwania

Głównym przeznaczeniem systemów mikroprocesorowych jest sterowanie różnego rodzaju procesami, np. przemysłowymi. Istotną cechą sterowania takimi procesami jest konieczność przerywania dokonywanych aktualnie obliczeń i przechodzenia, na asynchronicznie pojawiające się żądania z zewnątrz,do


Wyszukiwarka

Podobne podstrony:
250 251 250 Rozkazy powrotu. Rozkazy te (RET, Rcondition) powodują, przepisanie ~zawartości pary kom
Scan0070 (7) w tę i z powrotem i dumał. Zrezygnował z pomysłu, byśmy zagrali samych siebie, bo uznał
250 jpeg 234 CZĘŚĆ Teoria wymiany międzynarodowej mc mamy na myśli tego, że amerykańskie maszyny są
70 (8) 140 Opis rozkazów Kod:    10 0 1 0 0 0 1 1 Liczba cykfi: 1 23H Zawartość akumu
Powrót Mówicie, te u was jest wolność. Może i jest. Wolne są wiatry polne i światło gwiazd, l
3 (250) urzędu pocztowego. Wino jest to napój uzyskany na drodze fermentacji alkoholowej ze soku wyt
26411 ScannedImage 18 na powrót przez tę świadomość wchłonięta. Trwa ona na zewnątrz subiektywności
assembler?86? 6 92    5. Rozkazy mikroprocesorów 8086/8088 Zamiana miejscami zawart
assembler?86? 0 120 5. Rozkazy mikroprocesorów 80H6/H088 Mnożenie logiczne zawartości akumulatora
p1030072 (2) Oznaczenia Rozkaz Kod operacji Odniesienie do argumentu A - zawartość pola adresowego w
IMG359 Pisarz dopełnia te łódzkie realia prowadząc gradację „błotnistego pejzażu”, wynikającą ze sto

więcej podobnych podstron