Scarica il file con gli
appunti sullo Z80

E’
l’istruzione di disabilitazione delle interruzioni mascherabili (Disabile
Interrupt). Il microprocessore Z80 non viene interrotto da un’interruzione
mascherabile se il registro IFF1 si trova a zero. Lo scopo dell’istruzione DI è
proprio quello di porre a zero tale registro.

Quest’istruzione
ha lo scopo di abilitare le interruzioni mascherabili in modo che possano
causare un’interruzione del microprocessore. Essa agisce settando il registro
IFF1

Quest’istruzione ha lo scopo di
costringere il microprocessore a gestire le interruzioni mascherabili in modo
zero. Essa agisce sul registro IMF dello Z80 ponendolo a zero

Quest’istruzione ha lo scopo di
costringere il microprocessore a gestire le interruzioni mascherabili in modo
uno. Essa agisce sul registro IMF dello Z80 ponendolo a 01

Quest’istruzione ha lo scopo di
costringere il microprocessore a gestire le interruzioni mascherabili in modo
due. Essa agisce sul registro IMF dello Z80 ponendolo a 10


Quest’istruzione ruota verso
sinistra l’operando s: ogni bit si sposta nella cella alla sua sinistra. Il bit
7 va ad occupare il posto del bit zero e contemporaneamente va nel flag di
carry.

Modifiche al registro dei flag
|
S |
Z |
|
H |
|
P/V |
N |
C |
|
|
|
|
0 |
|
|
0 |
|
I flag S e Z sono modificati secondo la
solita legge, il flag PV funziona da flag di parità, C conterrà il bit 7
dell’operando.
L’operando s può essere
Un registro ad otto bit del
microprocessore A, B, C, D, E, H, L
Es. RLC D
Prima

Dopo

Il
risultato della rotazione ha il bit 7 pari ad 1 quindi è un numero negativo
(S=1), diverso da zero (Z=0), il numero di bit ad 1 è di cinque cioè è dispari
(P=0), il bit 7 prima della rotazione era 0 (C=0).
L’operando
s può essere il contenuto di una locazione di memoria il cui indirizzo è
contenuto nel registro HL.


Dopo


Il
risultato della rotazione ha il bit 7 pari ad 0 quindi è un numero positivo
(S=0), diverso da zero (Z=0), il numero di bit ad 1 è di tre cioè è dispari (P=0),
il bit 7 prima della rotazione era 0 (C=0).

L’operando
s può essere il contenuto di una locazione di memoria indirizzata con
indirizzamento indicizzato
Es. RLC (IX+1)


Dopo


Il
risultato della rotazione ha il bit 7 pari ad 0 quindi è un numero positivo
(S=0), diverso da zero (Z=0), il numero di bit ad 1 è di tre cioè è dispari
(P=0), il bit 7 prima della rotazione era 1 (C=1).

Quest’istruzione ruota verso
sinistra l’accumulatore: ogni bit si sposta nella cella alla sua sinistra. Il
bit 7 va ad occupare il posto del bit zero e contemporaneamente va nel flag di
carry.

Modifiche al registro dei flag
|
S |
Z |
|
H |
|
P/V |
N |
C |
|
|
|
|
0 |
|
|
0 |
|
I flag S e Z sono modificati secondo la
solita legge, il flag PV funziona da flag di parità, C conterrà il bit 7
dell’operando.
Quest’istruzione ruota verso
sinistra l’operando s: ogni bit si sposta nella cella alla sua sinistra. Il bit
7 va ad occupare il posto del flag di carry, il vecchio contenuto del flag di
carry va ad occupare il bit zero.

Modifiche al registro dei flag
|
S |
Z |
|
H |
|
P/V |
N |
C |
|
|
|
|
0 |
|
|
0 |
|
I flag S e Z sono modificati secondo la
solita legge, il flag PV funziona da flag di parità, C conterrà il bit 7
dell’operando.
L’operando s può essere
Un registro ad otto bit del
microprocessore A, B, C, D, E, H, L
Es. RLC D
Prima

Dopo

Il
risultato della rotazione ha il bit 7 pari ad 1 quindi è un numero negativo
(S=1), diverso da zero (Z=0), il numero di bit ad 1 è di sei cioè è pari (P=1),
il bit 7 prima della rotazione era 0 (C=0).
L’operando
s può essere il contenuto di una locazione di memoria il cui indirizzo è
contenuto nel registro HL.


Dopo

Il
risultato della rotazione ha il bit 7 pari ad 0 quindi è un numero positivo
(S=0), diverso da zero (Z=0), il numero di bit ad 1 è di quattro cioè è pari
(P=1), il bit 7 prima della rotazione era 0 (C=0).

L’operando
s può essere il contenuto di una locazione di memoria indirizzata con
indirizzamento indicizzato
Es. RLC (IX+1)


Dopo
1
Il
risultato della rotazione ha il bit 7 pari ad 0 quindi è un numero positivo
(S=0), diverso da zero (Z=0), il numero di bit ad 1 è di tre cioè è dispari
(P=0), il bit 7 prima della rotazione era 1 (C=1).

Quest’istruzione ruota verso
sinistra l’accumulatore: ogni bit si sposta nella cella alla sua sinistra. Il
bit 7 va ad occupare il flag di carry, il vecchio contenuto del flag di carry
va ad occupare il posto del bit zero.

Modifiche al registro dei flag
|
S |
Z |
|
H |
|
P/V |
N |
C |
|
|
|
|
0 |
|
|
0 |
|
I flag S e Z sono modificati secondo la
solita legge, il flag PV funziona da flag di parità, C conterrà il bit 7
dell’operando.
Quest’istruzione ruota verso destra
l’operando s: ogni bit si sposta nella cella alla sua destra. Il bit 0 va ad
occupare il posto del bit 7 e contemporaneamente va nel flag di carry.

Modifiche al registro dei flag
|
S |
Z |
|
H |
|
P/V |
N |
C |
|
|
|
|
0 |
|
|
0 |
|
I flag S e Z sono modificati secondo la
solita legge, il flag PV funziona da flag di parità, C conterrà il bit 7
dell’operando.
L’operando s può essere
Un registro ad otto bit del
microprocessore A, B, C, D, E, H, L
Es. RLC D
Prima

Dopo


I
l
risultato della rotazione ha il bit 7 pari ad 1 quindi è un numero negativo
(S=1), diverso da zero (Z=0), il numero di bit ad 1 è di cinque cioè è dispari
(P=0), il bit 0 prima della rotazione era 1 (C=1).
L’operando
s può essere il contenuto di una locazione di memoria il cui indirizzo è
contenuto nel registro HL.


Dopo
Il
risultato della rotazione ha il bit 7 pari ad 0 quindi è un numero positivo (S=0),
diverso da zero (Z=0), il numero di bit ad 1 è di tre cioè è dispari (P=0), il
bit 0 prima della rotazione era 0 (C=0).

L’operando
s può essere il contenuto di una locazione di memoria indirizzata con
indirizzamento indicizzato
Es. RLC (IX+1)


Dopo
Il
risultato della rotazione ha il bit 7 pari ad 0 quindi è un numero positivo (S=0),
diverso da zero (Z=0), il numero di bit ad 1 è di tre cioè è dispari (P=0), il
bit 0 prima della rotazione era 0 (C=0).

Con
quest’istruzione viene ruotato l’accumulatore verso destra, il bit zero va ad
occupare il posto del bit 7 e contemporaneamente va ad occupare il flag di
carry.


Quest’istruzione
ruota a destra l’operando s: ogni bit occupa il posto di quello alla sua
destra. Il bit zero occupa il posto del flag di carry, il vecchio contenuto del
flag di carry occupa il posto del bit 7.
Modifiche del registro dei flag
|
S |
Z |
|
H |
|
P/V |
N |
C |
|
|
|
|
0 |
|
|
0 |
|
I flag S e Z sono modificati secondo la solita legge, il flag PV funziona da flag di parità, C conterrà il bit 0 dell’operando. I flag H e N sono sempre a zero
L’operando s può essere un registro ad
otto bit.
Es.
RR H

Prima
Dopo

Il risultato della rotazione è un numero negativo (S=1), è un numero diverso da zero (Z=0), esso presenta un numero di bit ad uno pari a cinque, cioè dispari (PV=0), il bit zero prima della rotazione era pari a 1 (C=1).
L’operando s può essere il contenuto
di una locazione di memoria il cui indirizzo è contenuto nel registro HL (indirizzamento
indiretto)
Es.
RR (HL)

25|16 = 00100101|2


Dopo



Il risultato della rotazione è un numero negativo (S=1), è un numero diverso da zero (Z=0), esso presenta un numero di bit ad uno pari a tre, cioè dispari (PV=0), il bit zero prima della rotazione era pari a 1 (C=1).
L’operando s può essere il contenuto
di una locazione di memoria il cui indirizzo si può ottenere sommando il
contenuto del registro IX o IY ed uno spiazzamento (indirizzamento indicizzato)
Es. RR (IY +2)

F4|16
= 11110100|2

Dopo




Il risultato della rotazione è un numero negativo (S=1), è un numero diverso da zero (Z=0), esso presenta un numero di bit ad uno pari a SEI, cioè pari (PV=1), il bit zero prima della rotazione era pari a 0 (C=0).

Quest’istruzione
ruota a destra l’accumulatore: ogni bit occupa il posto di quello alla sua
destra. Il bit zero occupa il posto del flag di carry, il vecchio contenuto del
flag di carry occupa il posto del bit 7.
Modifiche del registro dei flag
|
S |
Z |
|
H |
|
P/V |
N |
C |
|
|
|
|
0 |
|
|
0 |
|
I flag S e Z sono modificati secondo la solita legge, il flag PV funziona da flag di parità, C conterrà il bit 0 dell’operando. I flag H e N sono sempre a zero
Rotazione
decimale a sinistra. L’operando è implicitamente una locazione di memoria il
cui indirizzo è contenuto nel registro HL. Quest’istruzione presuppone che il
contenuto dell’operando sia rappresentato in codice BCD, per cui ogni nibble
rappresenta una cifra decimale. Il nibble inferiore dell’operando va a
sostituire il nibble superiore dell’operando stesso. Il nibble superiore va a
sostituire il nibble inferiore dell’accumulatore, e questo va a sostituire il
nibble inferiore dell’operando.

Modifiche del registro dei flag
|
S |
Z |
|
H |
|
P/V |
N |
C |
|
|
|
|
0 |
|
|
0 |
|
I
flag S e Z sono modificati secondo la solita legge, il flag PV funziona da flag di parità. I flag H e N
sono sempre a zero. C non viene modificato.
Es.


Dopo

BA|16
= 10111010|2

Il
risultato della rotazione è un numero negativo (S=1), è un numero diverso da
zero (Z=0), esso presenta un numero di bit ad uno pari a CINQUE, cioè dispari
(PV=0).
Rotazione
decimale a destra. L’operando è implicitamente una locazione di memoria il cui
indirizzo è contenuto nel registro HL. Quest’istruzione presuppone che il
contenuto dell’operando sia rappresentato in codice BCD, per cui ogni nibble
rappresenta una cifra decimale. Il nibble superiore dell’operando va a
sostituire il nibble inferiore dell’operando stesso. Il nibble inferiore va a
sostituire il nibble inferiore dell’accumulatore, e questo va a sostituire il
nibble superiore dell’operando.

Modifiche del registro dei flag
|
S |
Z |
|
H |
|
P/V |
N |
C |
|
|
|
|
0 |
|
|
0 |
|
I
flag S e Z sono modificati secondo la solita legge, il flag PV funziona da flag di parità. I flag H e N
sono sempre a zero. C non viene modificato.
Es.


Dopo


BA|16
= 10111010|2

Il
risultato della rotazione è un numero negativo (S=1), è un numero diverso da zero
(Z=0), esso presenta un numero di bit ad uno pari a CINQUE, cioè dispari
(PV=0).