Wykonawca: Krzysztof Sirzisko |
||||||||
Laboratorium Podstaw Informatyki |
||||||||
Temat: |
Przerwania w maszynie W (Architektura EW) |
Nr.lab.: 5 |
||||||
Rok akademicki |
termin |
Rodz. studiów |
grupa |
Data lab. |
Data oddania sprawozdania |
prowadzący |
ocena |
|
2006/2007 semestr letni |
wtorek 18-21 |
wieczorowe |
1 |
17.04 |
15.05 |
Robert Brzeski |
|
Wykorzystując zmodyfikowany rozkaz wyp oraz rozkaz wpr napisać program obsługujący przerwania dla maszyny W. Napisać rozkaz pwr (powrotu). Przerwania powinny zwracać na urządzenie wyjściowe:
- Przerwanie 1: 111
- Przerwanie 2: 22222
- Przerwanie 3: 3333333
- Przerwanie 4: 444444444
Ponadto przerwania powinny być obsługiwane według priorytetów.
Rozwiązanie:
Rozkaz wpr: |
Rozkaz pwr: |
start ; |
czyt wys wei il ; |
@0 wyg weja przep weak zak @1 ; |
wyx sa wea weja przep weak ; |
wyrb weja przep weak wyl wea ! |
czyt ; |
@1 @0 ; |
iak ; |
|
wyak wex ; |
Rozkaz wyp: |
wys sa wel ; |
czyt wys wei il ; |
wyx sa wea weja przep weak ; |
wyak werb ; |
czyt ; |
start eni ; |
iak ; |
nie int @0 ; |
wyak wex ; |
wyak wes ; |
wys sa werm ; |
wyx weja przep weak ; |
wyx sa wea weja przep weak ; |
dak ; |
czyt ; |
wyak wex ; |
iak ; |
wys weja przep weak ; |
wyak wex ; |
wyap as wes ; |
wys weja przep weak ; |
wyx sa wea ; |
wyx sa wea weja przep weak ; |
pisz ; |
czyt ; |
wyx weja przep weak ; |
iak ; |
dak ; |
wyak wex ; |
wyak sa wea wex ; |
wys sa wea ; |
pisz ; |
czyt ; |
wyrm as wes ; |
wys sa wel wea ; |
wyx weja przep weak ; |
|
dak ; |
|
wyak sa wea wex ; |
|
pisz ; |
|
wyl as wes ; |
|
wyx weja przep weak ; |
|
dak ; |
|
wyak sa wea wex ; |
|
pisz ; |
|
wyap wea ; |
|
wyl as wes ; |
|
pisz ; |
|
wyap wel wea ; |
|
rint il ; |
|
@0 wyl wea ; |
|
Kod źródłowy programu: |
|
SOB prog RPA SOB int1 ;przerwanie 1 RPA SOB int2 ;przerwanie 2 RPA SOB int3 ;przerwanie 3 RPA SOB int4 ;przerwanie 4
prog: WPR 15
WYP 31 SOB prog kon: STOP
znak: RST '#'
int1: POB st3 ŁAD N1 ptl1: POB N1 ODE st1 SOM int1k ŁAD N1 POB jeden WYP 31 ŁAD 100 SOB ptl1
int1k: PWR
int2: POB st5 ŁAD N2 ptl2: POB N2 ODE st1 SOM int2k ŁAD N2 POB dwa WYP 31 SOB ptl2 |
int2k: PWR
int3: POB st7 ŁAD N3 ptl3: POB N3 ODE st1 SOM int3k ŁAD N3 POB trzy WYP 31 SOB ptl3
int3k: PWR
int4: POB st9 ŁAD N4 ptl4: POB N4 ODE st1 SOM int4k ŁAD N4 POB cztery WYP 31 SOB ptl4
int4k: PWR
N1: RPA N2: RPA N3: RPA N4: RPA
jeden: RST '1' dwa: RST '2' trzy: RST '3' cztery: RST '4'
st1: RST 1 st3: RST 3 st5: RST 5 st7: RST 7 st9: RST 9 |
Adresy procedur obsługi przerwania to:
1: 1
2: 3
3: 5
4: 7
Adresy urządzeń:
Wejściowego: 15
Wyjściowego: 31