252 253

252 253



252

wykpnywanla'innych bardziej w danej chwilię^trzebn^ch obliczeń,a po Ich zakończeniu powrót do przerwanych. Współczesne komputery posiadają mechanizm pozwalający na takie przerywanie obliczeń. Mechanizm ten nosi nazwę przerwania, a powodujący Je sygnał zewnętrzny nazywa się żądaniem przerwania.    ,

W procesorze 8080 urządzenie zewnętrzne może zainicjować przerwanie przez podanie 1 na wejście INT procesora. Żądanie przerwania zostanie za-akceptowane, gdy wewnętrzny przerzutnik INTE jest w stanie 1 (stan prze-rzutnlka INTB można, jak pamiętamy, ustawiać rozkazami El i DI). Po zaobserwowaniu żądania przerwania fzP doprowadza d<j końca wykonanie bieżącego rozkazu i przechodzi do specjalnego cyklu Mi, podając na szynę danych status POTWIERDZENIE PRZERWANIA oraz zerując wewnętrzny przerzutnik INTE.

W‘czasie tego cyklu nie zwiększa się zawartość lięznifca rozkazów, co dodatkowo różni go od występującego normalnie Jako M1 cyklu POBRANIE ROZKAZU. Wreszcie, w cyklu tym ^.P pobiera rozkaz skoku do podprogramu, przechowywany poza pamięcią i. podawany na szynę danych przez urządzenie żądające przerwania. Zwykle jest to jednobajtowy rozkaz restaętu (RST 0 +RST7), powodujący slcok do jednego z• ośmiu adresów w pamięci, z zapamiętaniem ‘ stosie stanu licznika rozkazów poprzedzającego' skok.

WMMl

I0IKAIU


MUMIA


AMU

WMMIWANCH

niuni

mi

mi

✓~m3


M0V A,t ADD C HO* M.A



oou

#11!


mu PSW-

mu t


mm nuRWANiA

i wapienia m i

WAPIENIE NA 3 PODAJE MIKAl RiT 3.W WYNIKU CIEM KSP) - 1)—2B - (PCH)

((sp)-i)—(pu) ' (Pt)—Ml!

I PROCKO! PRIEtHOWI M-^


RET •


(ptuy—((sp)-i) * n (PCI)—(IIP) - i) • !3 I PROCESOR PUEtUOOll DO

Rys. 6.9. Sekwencja wykonywanych rozkazów przy przerwaniu. (Wszystkie adresy podane są w kodzie szesnastkowym)

Ta rys. 6.9 przedstawiono przykładową sekwencję rozkazów przy przerwaniu. W czasie wykonywania rozkazu o adresie 2BB2H*1 nadszedł sygnał żądania przerwania z urządzenia nr 3 1 po wykonaniu tego rozkazu przez jzP •P Litera H na końou wskazuje, te jest to liczba szesnastkowa.

urządzenia .to wysłało na szynę danych rozkaz RST 3. Wczytanie tego rozkazu przez y.P w cyklu POTWIERDZENIE PRZERWANI! spowodow*' ) przesłanie do stosu zawartości licznika rozkazów 2BB3, zaś do liczni' rozkazów liczby 0018H (sprawdź). Następnym rozkazem pobranym przez |uP z pamięci jest więc rozkaz o adresie 0018H. Ten i kolejno po nim następujące, aż do rozkazu RET w’'.czule, tworzą program obsługi przerwania. Pobranie przez jj. P rozkazu RET powoduje odczytanie ze stosu poprzedniej zawartości licznika rozkazów i powrót do miejsca, gdzie nastąpiło przerwanie wcześniej wykonywanego programu.

Rozkaz RST umożliwia skok do jednego z ośmiu adresów, wynoszących0000H, 0008H, 001OH, 0018H, 0020H, 0028H, 0030H, 0036H. Kolejne adresy skoku odległe są o 8 komórek pamięci, co wystarcza do umieszczenia kilku pierwszych rozkazów programu obsługi przerwania, w tym rozkazu skoku JMP do innego obszaru pamięci zawierającego resztę tego programu.

Ponieważ program obsługi przerwania zazwyczaj operuje na wewnętrznych rejestrach i wskaźnikach, ich poprzednia zawartość powinna być zachowana, aby po ukończeniu obsługi przerwania, dawny program mógł być poprawnie kontynuowany. Poniżej podano przykładowy program obsługi przerwania zabezpieczający rejestry A, H,hL 1 wskaźniki.

0018

PUSH PSW

1OBOI

LXI H.3D00H

0019

PUSH H

10B1 V

001A

El

10B2J

001B

JMP 10B0H

10B31

IN 2

0010

10B4J

001D

10B5

ADD M

m

1 0B6

M0V M,A

10B7

POP H

10B8

POP PSW

10B9

RET

Obsługa przerwania polega tu na dodaniu bajtu wczytanego z wejścia 2 do zawartości komórki pamięci o adresie 3D00H. Najpierw jednak rozkaz PU3H ES» przesyła do stosu zawartość akumulatora i wskaźników, zaś PUSH H przesyła tamże zawartość pary rejestrów H, L. Po zabezpieczeniu potrzebnych danych zezwala się na dalsze przerwania ustawiając rozkazem El wewnętrzny przerzutnik INTE, wyzerowany uprzednio sygnałem żądania przerwania INT. Następnie rozkaz JMP 10B0H powoduje skok do komórki 10B0H, gdzie rozpoczyna się właściwy program obsługi przerwania. Wreszcie rozkazy POP H i POP PSW przywracają rejestrom H,L, akumulatorowi i wskaźnikom stan, jaki miały w chwili przerwania, zaś rozkaz RET przywraca taki stan licznikowi rozkazów, w związku z czym procesor przystępuje do kontynuowania programu zawieszonego przerwaniem.

W powyższym przykładzie rozkaz El zezwalał na dalsze przerwania natychmiast po zabezpieczeniu w stosie wszystkich potrzebnych danych, Można tak czynić, jeżeli obsługa dalszych przerwań nie wymaga zakończenia aktualnego przerwania; w przeciwnym wypadku rozkaz El należy umieścić przed rozkazem RET.


Wyszukiwarka

Podobne podstrony:
252 253 252 wykpnywanla innych bardziej w danej chwilię^trzebnych obliczeń,a po Ich zakończeniu powr
CCF20120104031 252 253 Tu definicja jest bardziej “surowa” - wynika z niej 2 tylko obecność osobowe
image004 IV. Uzupełnij poniższy kod. tak aby w danej chwili co najwyżej jeden proces mógł jednocześn
z podmiotów może postulować swoje pomysły i próbować zachęcać do poparcia innych członków danej
IMG35 84 Pojęcie tekstu tyle, że umowność ta na tle innych, bardziej specjalnych „języków” przestaj
IMG?00 (2) napięcie, które odpowiada napięciu danej chwili generowanego przebiegu Gdy generowany prz
page0193 183 skutki określone prawami przyrody; ale niepodobna pojąć, by siła fizyczna w danej chwil
skanuj0058 2 114 S. Równowagi joiwre w rozcieńczonych roztworach wodnych znanych jest kilka innych,
Skan2 emocjonalnych: podzielenie się tym, co dla dziecka ważne w danej chwili, prośba o wsparcie i
Wykorzystując ten sposób nie otrzymuje się rzeczywistych wartości występujących w danej chwili w
Powyższy zapis wynika oczywiście z faktu, iż dla przypadku SIMO kanał w danej chwili jest opisywany
image003 IV. Uzupełnij poniższy kod, tak aby w danej chwili co najwyżej jeden proces mógł jednocześ
IMG04 (4) 32 Analogicznie można wyznaczyć trajektorie innych elementów B i C, które w chwili tB zaw

więcej podobnych podstron