Przykład obsługi przerwań maskowalnych w trybie 2 w Z-80 Podać zawartość pamięci danych po wykonaniu programu, z uwzględnieniem podprogramów obsługi p...
7 downloads
29 Views
199KB Size
Przykład obsługi przerwań maskowalnych w trybie 2 w Z-80 Podać zawartość pamięci danych po wykonaniu programu, z uwzględnieniem podprogramów obsługi przerwań, generowanych przez urządzenia z serii Z80. Przerwania przychodzą w trakcie wykonywania niżej zaznaczonych rozkazów i trwają do obsłużenia lub końca programu przykładowego. Każde przerwanie wystawia jedno urządzenie w łańcuchu przerwań.
Priorytet: P1 najwyższe P3- Najniższe Program główny : 1000 LD A,5 1002 LD BC,02 1005 LD DE,03 1008 LD HL,05 100B EI 100C LDDR 100E DEC HL 100F LD (HL),A 1010 EI 1011 LDIR P1:
P3
INC HL LD A,(HL) RETI
P2:
ld a,5 ld bc,2 ld de, 3 ld hl,5 ei lddr
100c P1: P1: P1: P1: 100c
inc hl ld a, (hl) reti lddr
100e 100e 100f 1010 1011
dec hl ld (hl),a ei ldir
1013
ei ld bc,2 ld bc,1 ei ret reti ldir
LD BC,01 EI RET
A <- 5 BC <- 2 DE <- 3 HL <- 5 Iff1=iff2=1 (DE) <- (HL) DE <- DE-1 HL <- HL-1 BC <- BC -1 If bc <> 0 PC <- PC-2 Iff1=iff2=0
Zawartość po 0 5 4 5 4 5 6
0 1 2 3 4 5 6
0 1 2 3 4 5 6
P1
PC 1000 1002 1005 1008 100b 100c
1011 P3: P3: P3: P2: P2: P2: P2: P3: 1011
Zawartość przed
Adres
EI P2 LD BC,02 RETI
P3:
A x 5
BC x
DE x
HL x
Pamięć
2 3 5
1
2
4 5
(3)<-(5)= 5
0
1
4 3
(2)<-(5)= 5
A <- (5) = 5 5 (DE) <- (HL) DE <- DE-1 HL <- HL-1 BC <- BC -1 HL <- 3 (HL) <- A Iff1=iff2=1 (DE) <- (HL) DE <- DE+1 HL <- HL+1 BC <- BC-1 If bc <> 0 PC <- PC-2 Iff1=iff2=0 Iff1=iff2=1 Bc <- 2 Iff1=iff2=0 BC <- 1 Iff1=iff2=1
(3)<-5
FFFF
2
4
(1)<-(3)=5
3
5
(2)<-(4)=4
2 1
(DE) <- (HL) DE <- DE+1 HL <- HL+1 BC <- BC-1 0
Proszę przeanalizować powyższy program dla następujących przykładów:
Priorytet: P1 najwyższe P3- Najniższe Program główny : 1000 LD A,5 1002 LD BC,02 1005 LD DE,03 1008 LD HL,05 100B EI 100C LDDR 100E DEC HL 100F LD (HL),A 1010 EI 1011 LDIR P1:
P1,P2 P3
INC HL LD A,(HL) RETI
P2:
LD BC,01 EI RET
P3:
EI LD BC,02 RETI
P3:
EI LD BC,02 RETI
Priorytet: P3 najwyższe P1- Najniższe Program główny : 1000 LD A,5 1002 LD BC,02 1005 LD DE,03 1008 LD HL,05 100B EI 100C LDDR 100E DEC HL 100F LD (HL),A 1010 EI 1011 LDIR P1:
INC HL LD A,(HL) RETI
P1,P2 P3
P2:
LD BC,01 EI RET