Lab 5, Politechnika ˙l˙ska


Politechnika Śląska

Wydział AEiI

Laboratorium

z Podstaw Informatyki

Grupa 4., sekcja 2.

Wioletta Bujak

Marek Kudera

Arkadiusz Mazur

Zadanie.

Napisać rozkaz przerywalny, program z użyciem tego rozkazu oraz procedury obsługi przerwania w dwóch wersjach: z wykorzystaniem i bez wykorzystania stosu.

Rozwiązanie 1. Wersja bez stosu.

Program:

Petla: NIC Koniec

POB PrzerwPrg

SOM Koniec

SOB Petla

Koniec: SOB Koniec

St1: RST 1D

StM1: RST -1D

PrzerwPrg: RST 0D

ILPrzerw: RPA

AK: RPA

Przerw: RPA

LAD AK

POB ILPrzerw

DOD St1

LAD ILPrzerw

POB AK

PZP Przerw

PrzerwKon: RPA

LAD AK

POB StM1

LAD PrzerwPrg

PZP PrzerwKon

POB AK

KON

Dodatkowe rozkazy:

Rozkaz

Typ = EW

Kod = 101

Mne = NIC

Opis = '<NIC> ze stosem'

Akcja

czyt wys wei il;

eni;

CZY NIE STN_INT DALEJ Kon;

wyl as wes;

wyap wea wel;

pisz il rint;

Kon: wyl wea;

Koniec

Rozkaz

Typ = EW

Kod = 101

Mne = PZP

Opis = 'Powrot z przerwania bez stosu'

Akcja

czyt wys wei il;

wyad wea;

czyt wys sa wel wea;

Koniec

Rozwiązanie 2. Rozwiązanie ze stosem.

Program:

UWS StX

Petla: NIC Koniec

POB PrzerwPrg

SOM Koniec

SOB Petla

Koniec: SOB Koniec

St1: RST 1D

StM1: RST -1D

PrzerwPrg: RST 0D

ILPrzerw: RPA

StX: RST 50D

AK: RPA

Przerw: LAD AK

POB ILPrzerw

DOD St1

LAD ILPrzerw

POB AK

PZP Przerw

PrzerwKon: LAD AK

POB StM1

LAD PrzerwPrg

POB AK

PZP PrzerwKon

KON

Dodatkowe rozkazy:

Rozkaz

Typ = EW

Kod = 101

Mne = NIC

Opis = '<NIC> ze stosem'

Akcja

czyt wys wei il;

eni;

CZY NIE STN_INT DALEJ Kon;

wyl as wes;

wyx weja pob weak;

jedn weja dod weak;

wyak wex sa wea;

pisz;

wyap wel rint;

Kon: wyl wea;

Koniec

Rozkaz

Typ = EW

Kod = 101

Mne = PZP

Opis = 'Powrot z przerwania ze stosem'

Akcja

czyt wys wei il;

wyx sa wea;

czyt wys sa wel wea;

wyak wes;

wyx weja pob weak;

jedn weja ode weak;

wyak wex;

wys weja pob weak;

Koniec

Rozkaz

Typ = EW

Kod = 101

Mne = UWS

Opis = 'Ustaw wskaznik stosu'

Akcja

czyt wys wei il;

wyad wea;

czyt wys wex;

wyl wea;

Koniec

Uwagi.

Procedura obsługi przerwania Przerw jest procedurą wspomnianą w temacie laboratorium. Procedura PrzerwKon ma za zadanie przerwać wykonanie programu poprzez nadanie wartości ujemnej zmiennej PrzerwPrg.

System przerwań.

W chwili wystąpienia przerwania jest ono zgłaszane do rejestru zgłoszeń ( RZ ). Zgłoszenia w nim uporządkowane są według priorytetów. Następnie, o ile nie jest ono zamaskowane w rejestrze maski ( RM ), w chwili wystąpienia sygnału eni jest wpisywane do rejestru przerwań, gdzie może być tylko jedno przerwanie. Generowany jest sygnał INT, a także obliczany adres procedury obsługi przerwania. Rozkaz, który wygenerował sygnał eni, zapamiętuje licznik. Do rejestru licznika przepisywany jest adres procedury obsługi przerwania, który umieszczany jest wcześniej na magistrali adresowej rozkazem wyap. Licznik zapamiętywany jest na stosie lub w pierwszej komórce procedury obsługi. Sprzętowa obsługa przerwania kończy się sygnałem rint, który resetuje rejestr zgłoszeń oraz sygnał INT.W tym momencie rozpoczyna się programowa obsługa przerwania. Wszystkie rejestry zmieniane w czasie jej wykonywania muszą być wcześniej zapamiętane i przywrócone przed jej zakończeniem. Rozkaz powrotu z przerwania przywraca stan licznika sprzed wywołania procedury obsługi.



Wyszukiwarka