Das Z80 Assemblermodul

Vorbemerkungen

In den nachstehenden Kapiteln werden öfter Zahlenparameter der Form n, nn oder auch pq etc. verwendet. Hierfür gelten im allgemeinen folgende Regeln:

Wertebereich: Sofern nicht anders angegeben, bei Byte-Operationen -128...+255, bei Word-Operationen -32768...+65535, bei Adressangaben 0...65535.
Auswertung:Die Ausdrücke müssen in Pass 2 auswertbar sein (siehe hierzu auch die Parser-Referenz).

Inhalt

Z80 Befehlsreferenz
Z80 undokumentierte Instruktionen
Zusätzliche Befehle im Z180/HD64180
Erweiterte Syntax


ADC <Ziel-Summand1>,<Summand2>

Beschreibung: Addition mit Übertrag

Adressierung:ADC A,r
ADC A,n
ADC A,(HL)
ADC A,(IX+d)
ADC A,(IY+d)
ADC HL,ss

Siehe auch:Arithmetische Operationen und Vergleiche



ADC A,r

Beschreibung: Das Register r und das Übertragsflag C aus dem Statusregister werden zum Akkumulator addiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A + r + C

Format:r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: IXH,IXL,IYH,IYL

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Flags:
SZHP/VCN
ÖÖÖÖÖ=0

Siehe auch:Der Befehl ADC
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



ADC A,n

Beschreibung: Die direkten Daten n und das Übertragsflag C aus dem Statusregister werden zum Akkumulator addiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A + n + C

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖÖÖÖ=0

Siehe auch:Der Befehl ADC
Arithmetische Operationen und Vergleiche



ADC A,(HL)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse im Register HL steht, und das Übertragsflag C aus dem Statusregister werden zum Akkumulator addiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A + (HL) + C

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖÖÖÖ=0

Siehe auch:Der Befehl ADC
Arithmetische Operationen und Vergleiche



ADC A,(IX+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IX und dem unmittelbaren Offset d gebildet wird, und das Übertragsflag C aus dem Statusregister werden zum Akkumulator addiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A + (IX+d) + C

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖÖÖÖ=0

Siehe auch:Der Befehl ADC
Arithmetische Operationen und Vergleiche



ADC A,(IY+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IY und dem unmittelbaren Offset d gebildet wird, und das Übertragsflag C aus dem Statusregister werden zum Akkumulator addiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A + (IY+d) + C

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖÖÖÖ=0

Siehe auch:Der Befehl ADC
Arithmetische Operationen und Vergleiche



ADC HL,ss

Beschreibung: Der Inhalt der Registerpaares HL und der Inhalt des angegeben Registerpaares ss werden addiert, dann wird noch das Carry-Flag addiert. Das Endergebnis wird in HL gespeichert.

Format:ss kann sein: BC,DE,HL,SP

Funktion:HL := HL + ss + C

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
610

Flags:
SZHP/VCN
ÖÖÖÖÖ=0

Bemerkung:H=1, wenn ein Übertrag von Bit 11 auftritt.

Siehe auch:Der Befehl ADC
Arithmetische Operationen und Vergleiche



ADD <Ziel-Summand1>,<Summand2>

Beschreibung: Addition ohne Übertrag

Adressierung:ADD A,r
ADD A,n
ADD A,(HL)
ADD A,(IX+d)
ADD A,(IY+d)
ADD HL,rr
ADD IX,rr
ADD IY,rr

Siehe auch:Arithmetische Operationen und Vergleiche



ADD A,r

Beschreibung: Das Register r wird zum Akkumulator addiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A + r

Format:r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: IXH,IXL,IYH,IYL

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Flags:
SZHP/VCN
ÖÖÖÖÖ=0

Siehe auch:Der Befehl ADD
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



ADD A,n

Beschreibung: Die direkten Daten n werden zum Akkumulator addiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A + n

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖÖÖÖ=0

Siehe auch:Der Befehl ADD
Arithmetische Operationen und Vergleiche



ADD A,(HL)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse im Register HL steht, wird zum Akkumulator addiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A + (HL)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖÖÖÖ=0

Siehe auch:Der Befehl ADD
Arithmetische Operationen und Vergleiche



ADD A,(IX+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IX und dem unmittelbaren Offset d gebildet wird, wird zum Akkumulator addiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A + (IX+d)

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖÖÖÖ=0

Siehe auch:Der Befehl ADD
Arithmetische Operationen und Vergleiche



ADD A,(IY+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IY und dem unmittelbaren Offset d gebildet wird, wird zum Akkumulator addiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A + (IY+d)

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖÖÖÖ=0

Siehe auch:Der Befehl ADD
Arithmetische Operationen und Vergleiche



ADD HL,rr

Beschreibung: Der Inhalt der Registerpaares HL und der Inhalt des angegeben Registerpaares rr werden addiert. Das Endergebnis wird in HL gespeichert.

Format:rr kann sein: BC,DE,HL,SP

Funktion:HL := HL + rr

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3112,75 ms1,833 ms1,375 ms
Z180/HD64180
ZyklenZustände
57

Flags:
SZHP/VCN
ÖÖ=0

Bemerkung:H=1, wenn ein Übertrag von Bit 11 auftritt.

Siehe auch:Der Befehl ADD
Arithmetische Operationen und Vergleiche



ADD IX,rr

Beschreibung: Der Inhalt des Indexregisters IX und der Inhalt des angegeben Registerpaares rr werden addiert. Das Endergebnis wird in IX gespeichert.

Format:rr kann sein: BC,DE,IX,SP

Funktion:IX := IX + ss

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
610

Flags:
SZHP/VCN
ÖÖ=0

Bemerkung:H=1, wenn ein Übertrag von Bit 11 auftritt.

Siehe auch:Der Befehl ADD
Arithmetische Operationen und Vergleiche



ADD IY,rr

Beschreibung: Der Inhalt des Indexregisters IY und der Inhalt des angegeben Registerpaares rr werden addiert. Das Endergebnis wird in IY gespeichert.

Format:rr kann sein: BC,DE,IY,SP

Funktion:IY := IY + ss

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
610

Flags:
SZHP/VCN
ÖÖ=0

Bemerkung:H=1, wenn ein Übertrag von Bit 11 auftritt.

Siehe auch:Der Befehl ADD
Arithmetische Operationen und Vergleiche



AND <Operand>

Beschreibung: Logische "UND"-Verknüpfung

Adressierung:AND r
AND n
AND (HL)
AND (IX+d)
AND (IY+d)

Siehe auch:Arithmetische Operationen und Vergleiche



AND r

Beschreibung: Der Akkumulator und das Register r werden logisch "UND" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A Ù r

Format:r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: IXH,IXL,IYH,IYL

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Flags:
SZHP/VCN
ÖÖ=1Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form AND A,r zulässig.

Siehe auch:Der Befehl AND
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



AND n

Beschreibung: Der Akkumulator und die direkten Daten n werden logisch "UND" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A Ù n

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖ=1Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form AND A,n zulässig.

Siehe auch:Der Befehl AND
Arithmetische Operationen und Vergleiche



AND (HL)

Beschreibung: Der Akkumulator und der Inhalt der Speicherstelle, deren Adresse im Register HL steht, werden logisch "UND" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A Ù (HL)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖ=1Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form AND A,(HL) zulässig.

Siehe auch:Der Befehl AND
Arithmetische Operationen und Vergleiche



AND (IX+d)

Beschreibung: Der Akkumulator und der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IX und dem direkten Offset d gebildet wird, werden logisch "UND" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A Ù (IX+d)

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖ=1Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form AND A,(IX+d) zulässig.

Siehe auch:Der Befehl AND
Arithmetische Operationen und Vergleiche



AND (IY+d)

Beschreibung: Der Akkumulator und der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IY und dem direkten Offset d gebildet wird, werden logisch "UND" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A Ù (IY+d)

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖ=1Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form AND A,(IY+d) zulässig.

Siehe auch:Der Befehl AND
Arithmetische Operationen und Vergleiche



BIT <Bit>,<Quelle>

Beschreibung: Das Bit b der Quelle wird getestet und das Zero-Flag entsprechend gesetzt.

Adressierung:BIT b,r
BIT b,(HL)
BIT b,(IX+d)
BIT b,(IY+d)


Siehe auch:Arithmetische Operationen und Vergleiche



BIT b,r

Beschreibung: Das durch b angegebene Bit des Registers r wird getestet und das Zero-Flag entsprechend gesetzt.

Funktion:Z := Ø r[b]

Format:r kann sein: A,B,C,D,E,H,L
b kann sein: 0...7

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,333 ms1 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
?Ö=1?=0

Siehe auch:Der Befehl BIT
Arithmetische Operationen und Vergleiche



BIT b,(HL)

Beschreibung: Das durch b angegebene Bit der durch das Registerpaar HL adressierten Speicherzelle wird getestet und das Zero-Flag entsprechend gesetzt.

Funktion:Z := Ø (HL)[b]

Format:b kann sein: 0...7

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3123 ms2 ms1,5 ms
Z180/HD64180
ZyklenZustände
39

Flags:
SZHP/VCN
?Ö=1?=0

Siehe auch:Der Befehl BIT
Arithmetische Operationen und Vergleiche



BIT b,(IX+d)

Beschreibung: Das durch b angegebene Bit der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle wird getestet und das Zero-Flag entsprechend gesetzt.

Funktion:Z := Ø (IX+d)[b]

Format:b kann sein: 0...7
d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5205 ms3,333 ms2,5 ms
Z180/HD64180
ZyklenZustände
515

Flags:
SZHP/VCN
?Ö=1?=0

Siehe auch:Der Befehl BIT
Arithmetische Operationen und Vergleiche



BIT b,(IY+d)

Beschreibung: Das durch b angegebene Bit der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle wird getestet und das Zero-Flag entsprechend gesetzt.

Funktion:Z := Ø (IY+d)[b]

Format:b kann sein: 0...7
d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5205 ms3,333 ms2,5 ms
Z180/HD64180
ZyklenZustände
515

Flags:
SZHP/VCN
?Ö=1?=0

Siehe auch:Der Befehl BIT
Arithmetische Operationen und Vergleiche



CALL [<Bedingung>,]<Zieladresse>

Beschreibung: Der Inhalt des Befehlszählers (PC) wird auf dem Stapel abgelegt. Anschließend wird der Befehlszähler mit der Zieladresse geladen. Ist eine Bedingung angegeben, so wird der Befehl nur ausgeführt, wenn sie erfüllt ist.

Adressierung:CALL cc,pq
CALL pq

Siehe auch:Programmflußkontrolle



CALL pq

Beschreibung: Der Inhalt des Befehlszählers wird auf dem Stapel abgelegt und der Befehlszähler mit pq geladen.

Funktion:
(SP-1) := PC[15...8]
(SP-2) := PC[7...0]
SP := SP - 2
PC := pq

Format:pq = 0...65535

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5174,25 ms2,833 ms2,125 ms
Z180/HD64180
ZyklenZustände
616

Flags:kein Einfluß

Siehe auch:Der Befehl CALL
Programmflußkontrolle



CALL cc,pq

Beschreibung: Ist die Bedingung cc erfüllt, so wird der Inhalt des Befehlszählers auf dem Stapel abgelegt und der Befehlszähler mit pq geladen. Ist die Bedingung nicht erfüllt, so wird die Adresse pq ignoriert und der Programmablauf mit dem auf CALL folgenden Befehl fortgesetzt.

Funktion:Wenn cc erfüllt:
(SP-1) := PC[15...8]
(SP-2) := PC[7...0]
SP := SP - 2
PC := pq

Format:cc kann sein: NZ,Z,NC,C,PO,PE,P,M
pq = 0...65535

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
cc wahr5174,25 ms2,833 ms2,125 ms
cc falsch3102,5 ms1,667 ms1,25 ms
Z180/HD64180
ZyklenZustände
cc wahr616
cc falsch26

Flags:kein Einfluß

Siehe auch:Der Befehl CALL
Programmflußkontrolle



CCF

Beschreibung: Das Carry-(Übertrags-)flag wird komplementiert.

Funktion:C := ØC

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13

Flags:
SZHP/VCN
C altÖ=0

Siehe auch:Arithmetische Operationen und Vergleiche



CP <Operand>

Beschreibung: Vergleich von Akkumulator und Operand.

Adressierung:CP r
CP n
CP (HL)
CP (IX+d)
CP (IY+d)

Siehe auch:Die Befehle CPD, CPDR, CPI, CPIR
Arithmetische Operationen und Vergleiche



CP r

Beschreibung: Das angegebene Register r wird vom Akkumulator subtrahiert und das Ergebnis wird verworfen, so daß nur die Flags entsprechend dem Ergebnis modifiziert werden.

Funktion:A - r

Format.r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: IXH,IXL,IYH,IYL

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Siehe auch:Der Befehl CP
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



CP n

Beschreibung: Die direkten Daten n werden vom Akkumulator subtrahiert und das Ergebnis wird verworfen, so daß nur die Flags entsprechend dem Ergebnis modifiziert werden.

Funktion:A - n

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Siehe auch:Der Befehl CP
Arithmetische Operationen und Vergleiche



CP (HL)

Beschreibung: Der Inhalt der Speicherzelle, die durch das Registerpaar HL adressiert wird, wird vom Akkumulator subtrahiert und das Ergebnis wird verworfen, so daß nur die Flags entsprechend dem Ergebnis modifiziert werden.

Funktion:A - (HL)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Siehe auch:Der Befehl CP
Arithmetische Operationen und Vergleiche



CP (IX+d)

Beschreibung: Der Inhalt der Speicherzelle, deren Adresse aus der (vorzeichenbehafteten) Summe von Indexregister IX und Offset d gebildet wird, wird vom Akkumulator subtrahiert und das Ergebnis wird verworfen, so daß nur die Flags entsprechend dem Ergebnis modifiziert werden.

Funktion:A - (IX+d)

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Siehe auch:Der Befehl CP
Arithmetische Operationen und Vergleiche



CP (IY+d)

Beschreibung: Der Inhalt der Speicherzelle, deren Adresse aus der (vorzeichenbehafteten) Summe von Indexregister IY und Offset d gebildet wird, wird vom Akkumulator subtrahiert und das Ergebnis wird verworfen, so daß nur die Flags entsprechend dem Ergebnis modifiziert werden.

Funktion:A - (IY+d)

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Siehe auch:Der Befehl CP
Arithmetische Operationen und Vergleiche



CPD

Beschreibung: Der Inhalt der Speicherstelle, die durch den Inhalt der Registerpaares HL adressiert wird, wird vom Inhalt des Akkumulators abgezogen, das Ergebnis wird nicht weiter berücksichtigt, so daß nur die Flags entsprechend dem Ergebnis modifiziert werden. Danach werden HL und BC dekrementiert.

Funktion:
A - (HL)
HL := HL - 1
BC := BC - 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4164 ms2,667 ms2 ms
Z180/HD64180
ZyklenZustände
612

Flags:
SZHP/VCN
ÖÖÖØ(BC=0)=1

Siehe auch:Die Befehle CP, CPDR, CPI, CPIR
Arithmetische Operationen und Vergleiche



CPDR

Beschreibung: Der Inhalt der Speicherstelle, die durch den Inhalt der Registerpaares HL adressiert wird, wird vom Inhalt des Akkumulators abgezogen, das Ergebnis wird nicht weiter berücksichtigt, so daß nur die Flags entsprechend dem Ergebnis modifiziert werden. Danach werden HL und BC dekrementiert. Ist BC ¹ 0 und A ¹ (HL), dann wird der Befehlszähler um zwei dekrementiert und der Befehl wiederholt.

Funktion:
A - (HL)
HL := HL - 1
BC := BC - 1
Wiederhole, bis BC = 0 oder A = (HL)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
BC=0 Ú A=(HL)4164 ms2,667 ms2 ms
BC¹0 Ù A¹(HL)5215,25 ms3,5 ms2,625 ms
Z180/HD64180
ZyklenZustände
BC=0 Ú A=(HL)612
BC¹0 Ù A¹(HL)814

Flags:
SZHP/VCN
ÖÖÖØ(BC=0)=1

Siehe auch:Die Befehle CP, CPD, CPI, CPIR
Arithmetische Operationen und Vergleiche



CPI

Beschreibung: Der Inhalt der Speicherstelle, die durch den Inhalt der Registerpaares HL adressiert wird, wird vom Inhalt des Akkumulators abgezogen, das Ergebnis wird nicht weiter berücksichtigt, so daß nur die Flags entsprechend dem Ergebnis modifiziert werden. Danach wird HL inkrementiert und BC dekrementiert.

Funktion:
A - (HL)
HL := HL + 1
BC := BC - 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4164 ms2,667 ms2 ms
Z180/HD64180
ZyklenZustände
612

Flags:
SZHP/VCN
ÖÖÖØ(BC=0)=1

Siehe auch:Die Befehle CP, CPD, CPDR, CPIR
Arithmetische Operationen und Vergleiche



CPIR

Beschreibung: Der Inhalt der Speicherstelle, die durch den Inhalt der Registerpaares HL adressiert wird, wird vom Inhalt des Akkumulators abgezogen, das Ergebnis wird nicht weiter berücksichtigt, so daß nur die Flags entsprechend dem Ergebnis modifiziert werden. Danach wird HL inkrementiert und BC dekrementiert. Ist BC ¹ 0 und A ¹ (HL), dann wird der Befehlszähler um zwei dekrementiert und der Befehl wiederholt.

Funktion:
A - (HL)
HL := HL + 1
BC := BC - 1
Wiederhole, bis BC = 0 oder A = (HL)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
BC=0 Ú A=(HL)4164 ms2,667 ms2 ms
BC¹0 Ù A¹(HL)5215,25 ms3,5 ms2,625 ms
Z180/HD64180
ZyklenZustände
BC=0 Ú A=(HL)612
BC¹0 Ù A¹(HL)814

Flags:
SZHP/VCN
ÖÖÖØ(BC=0)=1

Siehe auch:Die Befehle CP, CPD, CPDR, CPI
Arithmetische Operationen und Vergleiche



CPL

Beschreibung: Der Inhalt des Akkumulators wird komplementiert und das Ergebnis wieder im Akku gespeichert (Einerkomplement).

Funktion:A := ØA

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13

Flags:
SZHP/VCN
=1=1

Siehe auch:Der Befehl NEG
Arithmetische Operationen und Vergleiche



DAA

Beschreibung: Dezimalanpassung des Akkumulators. Dieser Befehl addiert bedingt "6" zum oberen und/oder unteren Nibble des Akkumulators, abhängig vom Inhalt des Statusregisters. Dieser Befehl dient zur BCD-Umwandlung nach arithmetischen Operationen.

Funktion:
NCA[7...4]HA[3...0]# addiert zu AC nachher
000-900-9000
000-80A-F060
000-910-3060
00A-F00-9601
009-F0A-F661
00A-F10-3661
010-200-9601
010-20A-F661
010-310-3661
100-900-9000
100-816-FFA0
117-F00-9A01
116-F16-F9A1
Hinweis:N=0 nach ADD, ADC, INC
N=1 nach SUB, SBC, DEC, NEG

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Flags:
SZHP/VCN
ÖÖÖÖÖ

Siehe auch:Arithmetische Operationen und Vergleiche



DEC <Operand>

Beschreibung: Der <Operand> wird dekrementiert (-1).

Adressierung:DEC r
DEC (HL)
DEC (IX+d)
DEC (IY+d)
DEC rr

Siehe auch:Arithmetische Operationen und Vergleiche



DEC r

Beschreibung: Das Register r wird dekrementiert.

Funktion:r := r - 1

Format:r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: IXH,IXL,IYH,IYL

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Flags:
SZHP/VCN
ÖÖÖÖ=1

Siehe auch:Der Befehl DEC
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



DEC (HL)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse im Register HL steht, wird dekrementiert.

Funktion:(HL) := (HL) - 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3112,75 ms1,833 ms1,375 ms
Z180/HD64180
ZyklenZustände
410

Flags:
SZHP/VCN
ÖÖÖÖ=1

Siehe auch:Der Befehl DEC
Arithmetische Operationen und Vergleiche



DEC (IX+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IX und dem direkten Offset d gebildet wird, wird dekrementiert.

Funktion:(IX+d) := (IX+d) - 1

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
818

Flags:
SZHP/VCN
ÖÖÖÖ=1

Siehe auch:Der Befehl DEC
Arithmetische Operationen und Vergleiche



DEC (IY+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IY und dem direkten Offset d gebildet wird, wird dekrementiert.

Funktion:(IY+d) := (IY+d) - 1

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
818

Flags:
SZHP/VCN
ÖÖÖÖ=1

Siehe auch:Der Befehl DEC
Arithmetische Operationen und Vergleiche



DEC rr

Beschreibung: Das Registerpaar rr wird dekrementiert.

Funktion:rr := rr - 1

Format:rr kann sein: BC,DE,HL,SP,IX,IY

Ausführungszeit:Z80
rrZyklenTakte4 MHz6 MHz8 MHz
BC,DE,HL,SP161,5 ms1 ms 0,75 ms
IX,IY2102,5 ms1,667 ms1,25 ms
Z180/HD64180
rrZyklenZustände
BC,DE,HL,SP24
IX,IY37

Flags:kein Einfluß

Siehe auch:Der Befehl DEC
Arithmetische Operationen und Vergleiche



DI

Beschreibung: Alle maskierbaren Interrupts werden gesperrt bis zur Ausführung des Befehls EI.

Funktion:IFF := 0
IFF2 := 0

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13

Siehe auch:Der Befehl EI
Systemkontrolle



DJNZ e

Beschreibung: Das Register B wird dekrementiert. Ist das Ergebnis nicht null, dann wird der Offset mit Zweierkomplement-Arithmetik zum Befehlszähler addiert. Der Offset wird addiert zu PC+2 (nach dem Befehl). Der effektive Offset liegt also zwischen -126 und +129 Bytes. Der Assembler berechnet den benötigten Offset-Wert automatisch, für e ist im Assembler-Code die Zeiladresse einzusetzen.

Funktion:B := B - 1
Wenn B ¹ 0: PC := PC + e

Format:e = -126...+129 (d.h. die Zieladresse muß im Bereich von 126 Bytes vor bis 129 Bytes nach der Adresse des DJNZ-Befehls liegen)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
B ¹ 03133,25 ms2,167 ms1,625 ms
B = 0 282 ms1,334 ms1 ms
Z180/HD64180
ZyklenZustände
B ¹ 059
B = 0 37

Flags:kein Einfluß

Siehe auch:Der Befehl JR
Programmflußkontrolle



EI

Beschreibung: Alle maskierbaren Interrupts werden nach dem auf EI folgenden Befehl freigegeben.

Funktion:IFF := 1
IFF2 := 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13

Flags:kein Einfluß

Siehe auch:Der Befehl DI
Systemkontrolle



EX <1>,<2>

Beschreibung: <1> und <2> werden vertauscht.

Adressierung:EX AF,AF'
EX DE,HL
EX (SP),HL
EX (SP),IX
EX (SP),IY

Siehe auch:Der Befehl EXX
Systemkontrolle



EX AF,AF'

Beschreibung: Der Inhalt von Akkumulator und Statusregister wird mit dem Inhalt der entsprechenden Zweitregister vertauscht.

Funktion:AF « AF'

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form EX AF',AF zulässig.

Flags:kein Einfluß

Siehe auch:Der Befehl EX
Systemkontrolle



EX DE,HL

Beschreibung: Der Inhalt der Registerpaare DE und HL wird vertauscht.

Funktion:DE « HL

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form EX HL,DE zulässig.

Flags:kein Einfluß

Siehe auch:Der Befehl EX
Systemkontrolle



EX (SP),HL

Beschreibung: Der Inhalt des Registerpaares HL wird mit dem obersten Wort auf dem Stapel vertauscht.

Funktion:(SP) « L
(SP+1) « H

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
616

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form EX HL,(SP) zulässig.

Flags:kein Einfluß

Siehe auch:Der Befehl EX
Systemkontrolle



EX (SP),IX

Beschreibung: Der Inhalt des Indexregisters IX wird mit dem obersten Wort auf dem Stapel vertauscht.

Funktion:(SP) « IX[7..0]
(SP+1) « IX[15..8]

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form EX IX,(SP) zulässig.

Flags:kein Einfluß

Siehe auch:Der Befehl EX
Systemkontrolle



EX (SP),IY

Beschreibung: Der Inhalt des Indexregisters IY wird mit dem obersten Wort auf dem Stapel vertauscht.

Funktion:(SP) « IY[7..0]
(SP+1) « IY[15..8]

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form EX IY,(SP) zulässig.

Flags:kein Einfluß

Siehe auch:Der Befehl EX
Systemkontrolle



EXX

Beschreibung: Der Inhalt der Universalregister BC, DE, HL wird mit dem Inhalt der entsprechenden Zweitregister vertauscht.

Funktion:BC « BC'
DE « DE'
HL « HL'

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13

Flags:kein Einfluß

Siehe auch:Der Befehl EX
Systemkontrolle



HALT

Beschreibung: Die CPU unterbricht die Operation und führt solange NOPs aus, bis ein Interrupt oder ein Reset eintritt.

Funktion:CPU angehalten

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13
(zzgl. undefiniert vielen NOPs)

Flags:kein Einfluß

Siehe auch:Systemkontrolle



IM n

Beschreibung: Setzt den Interrupt-Modus n.

Funktion:IM 0:
In dieser Betriebsart kann der unterbrechende Baustein einen Befehl zur Ausführung auf den Datenbus legen. Das erste Byte dieses Befehls muß während des Interrupt Acknowlodge Zyklus anliegen (M1 und IORQ aktiv).
IM 1:
Wenn ein Interrupt auftritt, wird ein RST 38h ausgeführt.
IM 2:
In dieser Betriebsart muß der unterbrechende Baustein ein Datenbyte auf den Datenbus legen, welches als unterer Teil einer Adresse verwendet wird (Bit 0 wird auf 0 gesetzt). Die obere Adresshälfte wird dem Register I entnommen. Der so gebildete Adressvektor zeigt auf eine Speicheradresse, unter der ein Word gelesen und in den PC geschrieben wird.

Format:n = 0...2

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,334 ms1 ms
Z180/HD64180
ZyklenZustände
26

Flags:kein Einfluß

Siehe auch:Die Befehle DI, EI
Systemkontrolle



IN <Register>,(<Port>)

Beschreibung: Ein Datenbyte vom I/O-<Port> wird gelesen und ins <Register> geschrieben.

Adressierung:IN r,(C)
IN A,(n)

Siehe auch:Ein-/Ausgabe



IN r,(C)

Beschreibung: Das Peripheriegerät, das durch den Inhalt des Registers C adressiert wird, wird gelesen und das Ergebnis in das angegebene Register geladen. C liefert die Bits 0-7 der Adresse, B liefert die Bits 8-15.

Funktion:r := Port(BC)

Format:r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: F
Z180: F

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3123 ms2 ms1,5 ms
Z180/HD64180
ZyklenZustände
39

Flags:
SZHP/VCN
ÖÖ0Ö=0

Siehe auch:Die Befehle IN, OUT
Ein-/Ausgabe
Undokumentierte Instruktionen



IN A,(n)

Beschreibung: Das periphere Gerät n wird gelesen und das Ergebnis in den Akkumulator geladen. n liefert Bit 0-7 der Adresse, A liefert Bit 8-15.

Funktion:A := Port(n)

Format:n kann sein: 0...255

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3112,75 ms1,833 ms1,375 ms
Z180/HD64180
ZyklenZustände
39

Flags:kein Einfluß

Siehe auch:Die Befehle IN, OUT
Ein-/Ausgabe



IN0 r,(n)

Beschreibung: Das Peripheriegerät mit der Adresse n wird gelesen und das Ergebnis in das angegebene Register geladen. n liefert die Bits 0-7 der Adresse, die Bits 8-15 werden auf 0 gesetzt.
Dieser Befehl steht nur beim Z180 zur Verfügung

Funktion:r := Port(n)

Format:r kann sein: A,B,C,D,E,H,L,F
n kann sein: 0...255

Ausführungszeit:Z180/HD64180
ZyklenZustände
412

Flags:
SZHP/VCN
ÖÖ0Ö=0

Siehe auch:Die Befehle OUT0, IN, OUT
Ein-/Ausgabe
Zusätzliche Befehle im Z180



IND

Beschreibung: Das periphere Gerät, das durch das Register C adressiert wird, wird gelesen und das Ergebnis in die Speicherstelle geladen, die durch das Registerpaar HL adressiert wird. Das Register B und das Registerpaar HL werden dann dekrementiert.

Funktion:
(HL) := Port(C)
B := B - 1
HL := HL - 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4164 ms2,667 ms2 ms
Z180/HD64180
ZyklenZustände
412

Flags:
SZHP/VCN
?(B=0)??=1

Siehe auch:Die Befehle IN, OUT, OUTD
Ein-/Ausgabe



INDR

Beschreibung: Das periphere Gerät, das durch das Register C adressiert wird, wird gelesen und das Ergebnis in die Speicherstelle geladen, die durch das Registerpaar HL adressiert wird. Das Register B und das Registerpaar HL werden dann dekrementiert. Ist B nicht null, dann wird PC um zwei dekrementiert und der Befehl nochmals ausgeführt.

Funktion:
(HL) := Port(C)
B := B - 1
HL := HL - 1
Wiederhole, bis B=0

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
BC=04164 ms2,667 ms2 ms
BC¹05215,25 ms3,5 ms2,625 ms
Z180/HD64180
ZyklenZustände
BC=0412
BC¹0614

Flags:
SZHP/VCN
?=1??=1

Siehe auch:Die Befehle IN, OUT, OTDR
Ein-/Ausgabe



INI

Beschreibung: Das periphere Gerät, das durch das Register C adressiert wird, wird gelesen und das Ergebnis in die Speicherstelle geladen, die durch das Registerpaar HL adressiert wird. Das Register B wird dann dekrementiert und das Registerpaar HL inkrementiert.

Funktion:
(HL) := Port(C)
B := B - 1
HL := HL + 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4164 ms2,667 ms2 ms
Z180/HD64180
ZyklenZustände
412

Flags:
SZHP/VCN
?(B=0)??=1

Siehe auch:Die Befehle IN, OUT, OUTI
Ein-/Ausgabe



INIR

Beschreibung: Das periphere Gerät, das durch das Register C adressiert wird, wird gelesen und das Ergebnis in die Speicherstelle geladen, die durch das Registerpaar HL adressiert wird. Das Register B wird dann dekrementiert und das Registerpaar HL inkrementiert. Ist B nicht null, dann wird PC um zwei dekrementiert und der Befehl nochmals ausgeführt.

Funktion:
(HL) := Port(C)
B := B - 1
HL := HL + 1
Wiederhole, bis B=0

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
BC=04164 ms2,667 ms2 ms
BC¹05215,25 ms3,5 ms2,625 ms
Z180/HD64180
ZyklenZustände
BC=0412
BC¹0614

Flags:
SZHP/VCN
?=1??=1

Siehe auch:Die Befehle IN, OUT, OTIR
Ein-/Ausgabe



INC <Operand>

Beschreibung: Der <Operand> wird inkrementiert (+1).

Adressierung:INC r
INC (HL)
INC (IX+d)
INC (IY+d)
INC rr

Siehe auch:Arithmetische Operationen und Vergleiche



INC r

Beschreibung: Das Register r wird inkrementiert.

Funktion:r := r + 1

Format:r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: IXH,IXL,IYH,IYL

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Flags:
SZHP/VCN
ÖÖÖÖ=0

Siehe auch:Der Befehl INC
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



INC (HL)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse im Register HL steht, wird inkrementiert.

Funktion:(HL) := (HL) + 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3112,75 ms1,833 ms1,375 ms
Z180/HD64180
ZyklenZustände
410

Flags:
SZHP/VCN
ÖÖÖÖ=0

Siehe auch:Der Befehl INC
Arithmetische Operationen und Vergleiche



INC (IX+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IX und dem direkten Offset d gebildet wird, wird inkrementiert.

Funktion:(IX+d) := (IX+d) + 1

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
818

Flags:
SZHP/VCN
ÖÖÖÖ=0

Siehe auch:Der Befehl INC
Arithmetische Operationen und Vergleiche



INC (IY+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IY und dem direkten Offset d gebildet wird, wird inkrementiert.

Funktion:(IY+d) := (IY+d) + 1

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
818

Flags:
SZHP/VCN
ÖÖÖÖ=0

Siehe auch:Der Befehl INC
Arithmetische Operationen und Vergleiche



INC rr

Beschreibung: Das Registerpaar rr wird inkrementiert.

Funktion:rr := rr + 1

Format:rr kann sein: BC,DE,HL,SP,IX,IY

Ausführungszeit:Z80
rrZyklenTakte4 MHz6 MHz8 MHz
BC,DE,HL,SP161,5 ms1 ms 0,75 ms
IX,IY2102,5 ms1,667 ms1,25 ms
Z180/HD64180
rrZyklenZustände
BC,DE,HL,SP24
IX,IY37

Flags:kein Einfluß

Siehe auch:Der Befehl INC
Arithmetische Operationen und Vergleiche



JP [<Bedingung>,]<Zieladresse>

Beschreibung: Der Befehlszähler wird mit der Zieladresse geladen. Ist eine Bedingung angegeben, so wird der Befehl nur ausgeführt, wenn sie erfüllt ist.

Adressierung:JP cc,pq
JP pq
JP (rr)

Siehe auch:Programmflußkontrolle



JP cc,pq

Beschreibung: Ist die Bedingung cc erfüllt, so wird der Befehlszähler mit pq geladen. Ist die Bedingung nicht erfüllt, so wird die Adresse pq ignoriert und der Programmablauf mit dem auf JP folgenden Befehl fortgesetzt.

Funktion:Wenn cc erfüllt: PC := pq

Format:cc kann sein: NZ,Z,NC,C,PO,PE,P,M
pq = 0...65535

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3102,5 ms1,667 ms1,25 ms
Z180/HD64180
ZyklenZustände
cc wahr39
cc falsch26

Flags:kein Einfluß

Siehe auch:Die Befehle JP, JR
Programmflußkontrolle



JP pq

Beschreibung: Der Befehlszähler wird mit der angegebenen Zweibyte-Adresse pq geladen.

Funktion:PC := pq

Format:cc kann sein: NZ,Z,NC,C,PO,PE,P,M
pq = 0...65535

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3102,5 ms1,667 ms1,25 ms
Z180/HD64180
ZyklenZustände
39

Flags:kein Einfluß

Siehe auch:Die Befehle JP, JR
Programmflußkontrolle



JP (rr)

Beschreibung: Der Inhalt des Registerpaares rr wird in den Befehlszähler geladen.

Funktion:PC := rr

Format:rr kann sein: HL,IX,IY

Ausführungszeit:Z80
rrZyklenTakte4 MHz6 MHz8 MHz
HL141 ms0,667 ms0,5 ms
IX,IY282 ms1,334 ms1 ms
Z180/HD64180
rrZyklenZustände
HL13
IX,IY26

Flags:kein Einfluß

Siehe auch:Die Befehle JP, JR
Programmflußkontrolle



JR [<Bedingung>,]<Zieloffset>

Beschreibung: Der Offset e wird in Zweierkomplement-Arithmetik zum Befehlszähler addiert. Der Assembler berechnet durch Angebe der Zieladresse den richtigen Offset automatisch. Ist eine Bedingung angegeben, so wird der Befehl nur ausgeführt, wenn sie erfüllt ist.

Adressierung:JR cc,e
JR e

Siehe auch:Programmflußkontrolle



JR cc,e

Beschreibung: Ist die angegebene Bedingung cc erfüllt, dann wird der Offset in Zweierkomplement-Arithmetik zum Befehlszähler addiert, so das Sprünge vorwärts und rückwärts möglich sind über eine Distanz von -126 bis +129 Bytes. Der Assembler berechnet den richtigen Offset automatisch.

Funktion:Wenn cc erfüllt: PC := PC + e

Format:cc kann sein: NZ,Z,NC,C
e = -126...+129 (d.h. die Zieladresse muß im Bereich von 126 Bytes vor bis 129 Bytes nach der Adresse des JR-Befehls liegen)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
cc wahr3123 ms2 ms1,5 ms
cc falsch271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
cc wahr48
cc falsch26

Flags:kein Einfluß

Siehe auch:Die Befehle JR, JP, DJNZ
Programmflußkontrolle



JR e

Beschreibung: Der Offset e wird in Zweierkomplement-Arithmetik zum Befehlszähler addiert, so das Sprünge vorwärts und rückwärts möglich sind über eine Distanz von -126 bis +129 Bytes. Der Assembler berechnet den richtigen Offset automatisch.

Funktion:PC := PC + e

Format:e = -126...+129 (d.h. die Zieladresse muß im Bereich von 126 Bytes vor bis 129 Bytes nach der Adresse des JR-Befehls liegen)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3123 ms2 ms1,5 ms
Z180/HD64180
ZyklenZustände
48

Flags:kein Einfluß

Siehe auch:Die Befehle JR, JP, DJNZ
Programmflußkontrolle



LD <Ziel>,<Quelle>

Beschreibung: Der Inhalt der Quelle wird ins Ziel geladen.

Adressierung:LD r,n
LD r,r'
LD r,(IX+d)
LD r,(IY+d)
LD r,(HL)
LD (IX+d),r
LD (IY+d),r
LD (HL),r
LD (IX+d),n
LD (IY+d),n
LD (HL),n
LD A,(nn)
LD A,(BC)
LD A,(DE)
LD (nn),A
LD (BC),A
LD (DE),A
LD A,I
LD A,R
LD I,A
LD R,A
LD dd,nn
LD dd,(nn)
LD dd,dd'
LD (nn),dd
LD SP,dd

Siehe auch:Datentransfer



LD r,n

Beschreibung: Der unmittelbare Parameter n wird ins Register r geladen.

Funktion:r := n

Format:r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: IXH,IXL,IYH,IYL

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer
Undokumentierte Instruktionen



LD r,r'

Beschreibung: Der Inhalt des Quellregisters r' wird ins Zielregister r geladen.

Funktion:r := r'

Format:r, r' können sein: A,B,C,D,E,H,L
Undokumentiert: IXH,IXL,IYH,IYL
IXL,IXH können nur mit A,B,C,D,E,IXL,IXH kombiniert werden.
IYL,IYH können nur mit A,B,C,D,E,IYL,IYH kombiniert werden.

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer
Undokumentierte Instruktionen



LD r,(IX+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IX und dem unmittelbaren Offset d gebildet wird, wird ins Register r geladen.

Funktion:r := (IX+d)

Format:r kann sein: A,B,C,D,E,H,L
d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD r,(IY+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IY und dem unmittelbaren Offset d gebildet wird, wird ins Register r geladen.

Funktion:r := (IY+d)

Format:r kann sein: A,B,C,D,E,H,L
d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD r,(HL)

Beschreibung: Der Inhalt der Speicherstelle, die durch HL adressiert wird, wird in das angegebene Register r geladen.

Funktion:r := (HL)

Format:r kann sein: A,B,C,D,E,H,L

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD (IX+d),r

Beschreibung: Der Inhalt des Registers r wird in die Speicherstelle geladen, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IX und dem unmittelbaren Offset d gebildet wird.

Funktion:(IX+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
715

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD (IY+d),r

Beschreibung: Der Inhalt des Registers r wird in die Speicherstelle geladen, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IY und dem unmittelbaren Offset d gebildet wird.

Funktion:(IY+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
715

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD (HL),r

Beschreibung: Der Inhalt des Registers r wird in die durch den Inhalt von HL adressierte Speicherzelle geladen.

Funktion:(HL) := r

Format:r kann sein: A,B,C,D,E,H,L

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
37

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD (IX+d),n

Beschreibung: Der Wert n wird in die Speicherstelle geladen, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IX und dem unmittelbaren Offset d gebildet wird.

Funktion:(IX+d) := n

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
515

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD (IY+d),n

Beschreibung: Der Wert n wird in die Speicherstelle geladen, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IY und dem unmittelbaren Offset d gebildet wird.

Funktion:(IY+d) := n

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
515

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD (HL),n

Beschreibung: Der unmittelbare Parameter n wird in die durch den Inhalt von HL adressierte Speicherzelle geladen.

Funktion:(HL) := n

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3102,5 ms1,667 ms1,25 ms
Z180/HD64180
ZyklenZustände
39

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD A,(nn)

Beschreibung: Der Inhalt der Speicherzelle nn wird in den Akkumulator geladen.

Funktion:A := (nn)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4133,25 ms2,167 ms1,625 ms
Z180/HD64180
ZyklenZustände
412

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD A,(BC)

Beschreibung: Der Inhalt der durch BC adressierten Speicherzelle wird in den Akku geladen.

Funktion:A := (BC)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD A,(DE)

Beschreibung: Der Inhalt der durch DE adressierten Speicherzelle wird in den Akku geladen.

Funktion:A := (DE)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD (nn),A

Beschreibung: Der Inhalt des Akkumulators wird in die Speicherzelle nn geladen.

Funktion:(nn) := A

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4133,25 ms2,167 ms1,625 ms
Z180/HD64180
ZyklenZustände
513

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD (BC),A

Beschreibung: Der Inhalt des Akkumulators wird in die durch den Inhalt von BC adressierte Speicherzelle geladen.

Funktion:(BC) := A

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
37

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD (DE),A

Beschreibung: Der Inhalt des Akkumulators wird in die durch den Inhalt von DE adressierte Speicherzelle geladen.

Funktion:(DE) := A

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
37

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD A,I

Beschreibung: Der Inhalt des Interruptvektorregisters I wird in den Akkumulator geladen.

Funktion:A := I

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
292,25 ms1,5 ms1,125 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖ=0=IFF2=0

Siehe auch:Die Befehle LD, DI, EI
Datentransfer



LD A,R

Beschreibung: Der Inhalt des Memory-Refresh-Registers R wird in den Akkumulator geladen.

Funktion:A := R

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
292,25 ms1,5 ms1,125 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖ=0=IFF2=0

Siehe auch:Die Befehle LD, DI, EI
Datentransfer



LD I,A

Beschreibung: Das Interruptvektorregister I wird mit dem Inhalt des Akkumulators geladen.

Funktion:I := A

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
292,25 ms1,5 ms1,125 ms
Z180/HD64180
ZyklenZustände
26

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD R,A

Beschreibung: Das Memory-Refresh-Register R wird mit dem Inhalt des Akkumulators geladen.

Funktion:R := A

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
292,25 ms1,5 ms1,125 ms
Z180/HD64180
ZyklenZustände
26

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD dd,nn

Beschreibung: Die unmittelbaren Daten nn werden in das Registerpaar dd geladen.

Funktion:dd := nn

Format:dd kann sein: BC,DE,HL,SP,IX,IY

Ausführungszeit:Z80
ddZyklenTakte4 MHz6 MHz8 MHz
BC,DE,HL,SP3102,5 ms1,667 ms1,25 ms
IX,IY4143,5 ms2,333 ms1,75 ms
Z180/HD64180
rrZyklenZustände
BC,DE,HL,SP39
IX,IY412

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD dd,(nn)

Beschreibung: Der Inhalt der Speicherzelle, die durch die Adresse nn selektiert wird, wird in die untere Hälfte des angegebenen Registerpaares dd geladen, der Inhalt der folgenden Speicherzelle in die obere Hälfte.

Funktion:
dd[7...0] := (nn)
dd[15..8] := (nn+1)

Format:dd kann sein: BC,DE,HL,SP,IX,IY

Ausführungszeit:Z80
ddZyklenTakte4 MHz6 MHz8 MHz
BC,DE,SP6205 ms3,333 ms2,5 ms
HL5164 ms2,667 ms2 ms
IX,IY6205 ms3,333 ms2,5 ms
Z180/HD64180
rrZyklenZustände
BC,DE,SP618
HL515
IX,IY618

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD dd,dd'

Beschreibung: Der Inhalt des Quellregisterpaares dd' wird ins Zielregisterpaar dd geladen.

Funktion:dd := dd'

Format:dd, dd' können sein: BC,DE,HL

Bemerkung:Dies ist ein Pseudobefehl, der vom Assembler aus zwei Einzelregister-Befehlen zusammengesetzt wird. Er steht nur zur Verfügung, wenn die erweiterte Syntax eingeschaltet ist.

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,333 ms1 ms
Z180/HD64180
ZyklenZustände
48

Flags:kein Einfluß

Siehe auch:Die Befehle LD r,r', LD
Datentransfer



LD (nn),dd

Beschreibung: Die untere Hälfte des angegebenen Registerpaares dd wird in die Speicherzelle nn geladen, die obere Hälfte in die Speicherzelle nn+1.

Funktion:(nn) := dd[7...0]
(nn+1) := dd[15..8]

Format:dd kann sein: BC,DE,HL,SP,IX,IY

Ausführungszeit:Z80
ddZyklenTakte4 MHz6 MHz8 MHz
BC,DE,SP6205 ms3,333 ms2,5 ms
HL5164 ms2,667 ms2 ms
IX,IY6205 ms3,333 ms2,5 ms
Z180/HD64180
rrZyklenZustände
BC,DE,SP719
HL616
IX,IY719

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LD SP,dd

Beschreibung: Der Inhalt des Registerpaares dd wird in den Stapelzeiger geladen.

Funktion:SP := dd

Format:dd kann sein: HL,IX,IY

Ausführungszeit:Z80
ddZyklenTakte4 MHz6 MHz8 MHz
HL161,5 ms1 ms0,75 ms
IX,IY2102,5 ms1,667 ms1,25 ms
Z180/HD64180
ddZyklenZustände
HL24
IX,IY37

Flags:kein Einfluß

Siehe auch:Der Befehl LD
Datentransfer



LDD

Beschreibung: Der Inhalt der durch HL adressierten Speicherstelle wird in die durch DE adressierte Speicherstelle geladen. Dann werden BC, DE und HL dekrementiert.

Funktion:
(DE) := (HL)
DE := DE - 1
HL := HL - 1
BC := BC - 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4164 ms2,667 ms2 ms
Z180/HD64180
ZyklenZustände
412

Flags:
SZHP/VCN
=0Ø(BC=0)=0

Siehe auch:Die Befehle LD, LDDR, LDI, LDIR
Datentransfer



LDDR

Beschreibung: Der Inhalt der durch HL adressierten Speicherstelle wird in die durch DE adressierte Speicherstelle geladen. Dann werden BC, DE und HL dekrementiert. Ist BC ¹ 0, dann wird der Befehlszähler um zwei dekrementiert und der Befehl wiederholt.

Funktion:
(DE) := (HL)
DE := DE - 1
HL := HL - 1
BC := BC - 1
Wiederhole, bis BC = 0

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
BC=04164 ms2,667 ms2 ms
BC¹05215,25 ms3,5 ms2,625 ms
Z180/HD64180
ZyklenZustände
BC=0412
BC¹0614

Flags:
SZHP/VCN
=0=0=0

Siehe auch:Die Befehle LD, LDD, LDI, LDIR
Datentransfer



LDI

Beschreibung: Der Inhalt der durch HL adressierten Speicherstelle wird in die durch DE adressierte Speicherstelle geladen. Dann werden DE und HL inkrementiert und BC dekrementiert.

Funktion:
(DE) := (HL)
DE := DE + 1
HL := HL + 1
BC := BC - 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4164 ms2,667 ms2 ms
Z180/HD64180
ZyklenZustände
412

Flags:
SZHP/VCN
=0Ø(BC=0)=0

Siehe auch:Die Befehle LD, LDD, LDDR, LDIR
Datentransfer



LDIR

Beschreibung: Der Inhalt der durch HL adressierten Speicherstelle wird in die durch DE adressierte Speicherstelle geladen. Dann werden DE und HL inkrementiert und BC dekrementiert. Ist BC ¹ 0, dann wird der Befehlszähler um zwei dekrementiert und der Befehl wiederholt.

Funktion:
(DE) := (HL)
DE := DE + 1
HL := HL + 1
BC := BC - 1
Wiederhole, bis BC = 0

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
BC=04164 ms2,667 ms2 ms
BC¹05215,25 ms3,5 ms2,625 ms
Z180/HD64180
ZyklenZustände
BC=0412
BC¹0614

Flags:
SZHP/VCN
=0=0=0

Siehe auch:Die Befehle LD, LDD, LDDR, LDI
Datentransfer



MLT dd

Beschreibung: Die obere und die untere Hälfte des Registerpaares ss werden multipliziert. Das Ergebnis wird nach ss geschrieben.
Dieser Befehl steht nur im Z180 zur Verfügung.

Format:ss kann sein: BC,DE,HL,SP

Funktion:ss := ssL · ssH

Ausführungszeit:Z180/HD64180
ZyklenZustände
1317

Flags:kein Einfluß

Siehe auch:Arithmetische Operationen und Vergleiche
Zusätzliche Befehle im Z180



NEG

Beschreibung: Der Inhalt des Akkumulators wird von Null subtrahiert und das Ergebnis wieder im Akku gespeichert (Zweierkomplement).

Funktion:A := 0 - A

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,333 ms1 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖÖÖÖ=1
C wird gesetzt, wenn A vor dem Befehl 0 war.
P wird gesetzt, wenn A 80h war.

Siehe auch:Der Befehl CPL
Arithmetische Operationen und Vergleiche



NOP

Beschreibung: Einen Maschinenzyklus lang wird nichts getan.

Funktion:Delay

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13

Flags:kein Einfluß

Siehe auch:Systemkontrolle



OR <Operand>

Beschreibung: Logische "ODER"-Verknüpfung

Adressierung:OR r
OR n
OR (HL)
OR (IX+d)
OR (IY+d)

Siehe auch:Arithmetische Operationen und Vergleiche



OR r

Beschreibung: Der Akkumulator und das Register r werden logisch "ODER" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A Ú r

Format:r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: IXH,IXL,IYH,IYL

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Flags:
SZHP/VCN
ÖÖ=0Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form OR A,r zulässig.

Siehe auch:Der Befehl OR
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



OR n

Beschreibung: Der Akkumulator und die direkten Daten n werden logisch "ODER" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A Ú n

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖ=0Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form OR A,n zulässig.

Siehe auch:Der Befehl OR
Arithmetische Operationen und Vergleiche



OR (HL)

Beschreibung: Der Akkumulator und der Inhalt der Speicherstelle, deren Adresse im Register HL steht, werden logisch "ODER" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A Ú (HL)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖ=0Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form OR A,(HL) zulässig.

Siehe auch:Der Befehl OR
Arithmetische Operationen und Vergleiche



OR (IX+d)

Beschreibung: Der Akkumulator und der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IX und dem direkten Offset d gebildet wird, werden logisch "ODER" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A Ú (IX+d)

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖ=0Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form OR A,(IX+d) zulässig.

Siehe auch:Der Befehl OR
Arithmetische Operationen und Vergleiche



OR (IY+d)

Beschreibung: Der Akkumulator und der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IY und dem direkten Offset d gebildet wird, werden logisch "ODER" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A Ú (IY+d)

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖ=0Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form OR A,(IY+d) zulässig.

Siehe auch:Der Befehl OR
Arithmetische Operationen und Vergleiche



OUT (<Port>),<Register>

Beschreibung: Der Inhalt des <Registers> wird auf den I/O-<Port> geschrieben.

Adressierung:OUT (C),r
OUT (n),A

Siehe auch:Ein-/Ausgabe



OUT (C),r

Beschreibung: Das Peripheriegerät, das durch den Inhalt des Registers C adressiert wird, wird mit dem Inhalt des angegebenen Registers r beschrieben. C liefert die Bits 0-7 der Adresse, B liefert die Bits 8-15.

Funktion:Port(BC) := r

Format:r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: 0

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3123 ms2 ms1,5 ms
Z180/HD64180
ZyklenZustände
410

Flags:kein Einfluß

Siehe auch:Die Befehle IN, OUT
Ein-/Ausgabe
Undokumentierte Instruktionen



OUT (n),A

Beschreibung: Das periphere Gerät n wird mit dem Inhalt des Akkumulators beschrieben. n liefert Bit 0-7 der Adresse, A liefert Bit 8-15.

Funktion:Port(n) := A

Format:n kann sein: 0...255

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3112,75 ms1,833 ms1,375 ms
Z180/HD64180
ZyklenZustände
410

Flags:kein Einfluß

Siehe auch:Die Befehle IN, OUT
Ein-/Ausgabe



OUT0 (n),r

Beschreibung: Der Inhalt des Registers r wird an das Peripheriegerät mit der Adresse n ausgegeben. n liefert die Bits 0-7 der Adresse, die Bits 8-15 werden auf 0 gesetzt.
Dieser Befehl steht nur beim Z180 zur Verfügung

Funktion:Port(n) := r

Format:r kann sein: A,B,C,D,E,H,L
n kann sein: 0...255

Ausführungszeit:Z180/HD64180
ZyklenZustände
513

Flags:kein Einfluß

Siehe auch:Die Befehle IN0, IN, OUT
Ein-/Ausgabe
Zusätzliche Befehle im Z180



OUTD

Beschreibung: Der Inhalt der Speicherzelle, die durch das Registerpaar HL adressiert wird, wird zum I/O-Gerät ausgegeben, das durch den Inhalt von C adressiert wird. Dann werden die Register B und HL dekrementiert. C liefert die Bits 0-7 der I/O-Adresse, B die Bits 8-15 (nach dem Dekrementieren).

Funktion:
Port(BC) := (HL)
B := B - 1
HL := HL - 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4164 ms2,667 ms2 ms
Z180/HD64180
ZyklenZustände
412

Flags:
SZHP/VCN
?(B=0)??=1

Siehe auch:Die Befehle IN, OUT, IND
Ein-/Ausgabe



OTDR

Beschreibung: Der Inhalt der Speicherzelle, die durch das Registerpaar HL adressiert wird, wird zum I/O-Gerät ausgegeben, das durch den Inhalt von C adressiert wird. Dann werden die Register B und HL dekrementiert. Ist B <>0, dann wird PC um zwei vermindert und der Befehl erneut ausgeführt. C liefert die Bits 0-7 der I/O-Adresse, B die Bits 8-15 (nach dem Dekrementieren).

Funktion:
Port(BC) := (HL)
B := B - 1
HL := HL - 1
Wiederhole, bis B=0

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
BC=04164 ms2,667 ms2 ms
BC¹05215,25 ms3,5 ms2,625 ms
Z180/HD64180
ZyklenZustände
BC=0412
BC¹0614

Flags:
SZHP/VCN
?=1??=1

Siehe auch:Die Befehle IN, OUT, INDR
Ein-/Ausgabe



OUTI

Beschreibung: Der Inhalt der Speicherzelle, die durch das Registerpaar HL adressiert wird, wird zum I/O-Gerät ausgegeben, das durch den Inhalt von C adressiert wird. Dann wird das Register B dekrementiert und HL inkrementiert. C liefert die Bits 0-7 der I/O-Adresse, B die Bits 8-15 (nach dem Dekrementieren).

Funktion:
Port(BC) := (HL)
B := B - 1
HL := HL + 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4164 ms2,667 ms2 ms
Z180/HD64180
ZyklenZustände
412

Flags:
SZHP/VCN
?(B=0)??=1

Siehe auch:Die Befehle IN, OUT, INI
Ein-/Ausgabe



OTDM

Beschreibung: Der Inhalt der Speicherzelle, die durch das Registerpaar HL adressiert wird, wird zum I/O-Gerät ausgegeben, das durch den Inhalt von C adressiert wird. Dann werden die Register B, HL und C dekrementiert. C liefert die Bits 0-7 der I/O-Adresse, die Bits 8-15 werden auf 0 gesetzt.
Dieser Befehl steht nur im Z180 zur Verfügung.

Funktion:
Port(C) := (HL)
B := B - 1
HL := HL - 1
C := C - 1

Ausführungszeit:Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
=0(B=0)=0=1=0Ö

Siehe auch:Die Befehle OTIM, OTDMR, OTIMR
Ein-/Ausgabe
Zusätzliche Befehle im Z180



OTDMR

Beschreibung: Der Inhalt der Speicherzelle, die durch das Registerpaar HL adressiert wird, wird zum I/O-Gerät ausgegeben, das durch den Inhalt von C adressiert wird. Dann werden die Register B, HL und C dekrementiert. Ist B<>0, dann wird PC um zwei vermindert und der Befehl erneut ausgeführt. C liefert die Bits 0-7 der I/O-Adresse, die Bits 8-15 werden auf 0 gesetzt.
Dieser Befehl steht nur im Z180 zur Verfügung.

Funktion:
Port(C) := (HL)
B := B - 1
HL := HL - 1
C := C - 1
Wiederhole, bis B=0

Ausführungszeit:Z180/HD64180
ZyklenZustände
BC=0614
BC¹0816

Flags:
SZHP/VCN
=0=1=0=1=0Ö

Siehe auch:Die Befehle OTIM, OTIMR, OTDM
Ein-/Ausgabe
Zusätzliche Befehle im Z180



OTIM

Beschreibung: Der Inhalt der Speicherzelle, die durch das Registerpaar HL adressiert wird, wird zum I/O-Gerät ausgegeben, das durch den Inhalt von C adressiert wird. Dann wird das Register B dekrementiert und HL und C inkrementiert. C liefert die Bits 0-7 der I/O-Adresse, die Bits 8-15 werden auf 0 gesetzt.
Dieser Befehl steht nur im Z180 zur Verfügung.

Funktion:
Port(C) := (HL)
B := B - 1
HL := HL + 1
C := C + 1

Ausführungszeit:Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
=0(B=0)=0=1=0Ö

Siehe auch:Die Befehle OTIMR, OTDM, OTDMR
Ein-/Ausgabe
Zusätzliche Befehle im Z180



OTIMR

Beschreibung: Der Inhalt der Speicherzelle, die durch das Registerpaar HL adressiert wird, wird zum I/O-Gerät ausgegeben, das durch den Inhalt von C adressiert wird. Dann wird das Register B dekrementiert und HL und C inkrementiert. Ist B <>0, dann wird PC um zwei vermindert und der Befehl erneut ausgeführt. C liefert die Bits 0-7 der I/O-Adresse, die Bits 8-15 werden auf 0 gesetzt.
Dieser Befehl steht nur im Z180 zur Verfügung.

Funktion:
Port(C) := (HL)
B := B - 1
HL := HL + 1
C := C + 1
Wiederhole, bis B=0

Ausführungszeit:Z180/HD64180
ZyklenZustände
BC=0614
BC¹0816

Flags:
SZHP/VCN
=0=1=0=1=0Ö

Siehe auch:Die Befehle OTIM, OTDMR, OTDM
Ein-/Ausgabe
Zusätzliche Befehle im Z180



OTIR

Beschreibung: Der Inhalt der Speicherzelle, die durch das Registerpaar HL adressiert wird, wird zum I/O-Gerät ausgegeben, das durch den Inhalt von C adressiert wird. Dann wird das Register B dekrementiert und HL inkrementiert. Ist B <>0, dann wird PC um zwei vermindert und der Befehl erneut ausgeführt. C liefert die Bits 0-7 der I/O-Adresse, B die Bits 8-15 (nach dem Dekrementieren).

Funktion:
Port(BC) := (HL)
B := B - 1
HL := HL + 1
Wiederhole, bis B=0

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
BC=04164 ms2,667 ms2 ms
BC¹05215,25 ms3,5 ms2,625 ms
Z180/HD64180
ZyklenZustände
BC=0412
BC¹0614

Flags:
SZHP/VCN
?=1??=1

Siehe auch:Die Befehle IN, OUT, INIR
Ein-/Ausgabe



POP dd

Beschreibung: Der Inhalt der Speicherzelle, auf die SP zeigt, wird in die untere Hälfte des angegebenen Registerpaares dd geladen, SP inkrementiert, (SP) in die obere Hälfte geladen. Darauf wird SP nochmals inkrementiert.

Funktion:
dd[7...0] := (SP)
SP := SP + 1
dd[15...8] := (SP)
SP := SP + 1

Format:dd kann sein: BC,DE,HL,AF,IX,IY

Ausführungszeit:Z80
ddZyklenTakte4 MHz6 MHz8 MHz
BC,DE,HL,AF3102,5 ms1,667 ms1,25 ms
IX,IY4143,5 ms2,333 ms1,75 ms
Z180/HD64180
ddZyklenZustände
BC,DE,HL,AF39
IX,IY412

Flags:kein Einfluß

Siehe auch:Der Befehl PUSH
Datentransfer



PUSH dd

Beschreibung: SP wird dekrementiert und die Speicherzelle, auf die SP zeigt, wird mit der oberen Hälfte des angegebenen Registerpaares dd geladen, SP nochmals dekrementiert, (SP) mit der unteren Hälfte geladen.

Funktion:
SP := SP - 1
(SP) := dd[15...8]
SP := SP - 1
(SP) := dd[7...0]

Format:dd kann sein: BC,DE,HL,AF,IX,IY

Ausführungszeit:Z80
ddZyklenTakte4 MHz6 MHz8 MHz
BC,DE,HL,AF3112,75 ms1,833 ms1,375 ms
IX,IY4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ddZyklenZustände
BC,DE,HL,AF511
IX,IY614

Flags:kein Einfluß

Siehe auch:Der Befehl POP
Datentransfer



RES <Bit>,<Operand>

Beschreibung: Das Bit b des <Operanden> wird zurückgesetzt.

Adressierung:RES b,r
RES b,(HL)
RES b,(IX+d)
RES b,(IY+d)

Siehe auch:Der Befehl RESLD
Arithmetische Operationen und Vergleiche



RES b,r

Beschreibung: Das durch b angegebene Bit des Registers r wird zurückgesetzt.

Funktion:r[b] := 0

Format:r kann sein: A,B,C,D,E,H,L
b kann sein: 0...7

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,333 ms1 ms
Z180/HD64180
ZyklenZustände
37

Flags:kein Einfluß

Siehe auch:Der Befehl RES
Arithmetische Operationen und Vergleiche



RES b,(HL)

Beschreibung: Das durch b angegebene Bit der durch das Registerpaar HL adressierten Speicherzelle wird zurückgesetzt.

Funktion:(HL)[b] := 0

Format:b kann sein: 0...7

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
513

Flags:kein Einfluß

Siehe auch:Der Befehl RES
Arithmetische Operationen und Vergleiche



RES b,(IX+d)

Beschreibung: Das durch b angegebene Bit der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle wird zurückgesetzt.

Funktion:(IX+d)[b] := 0

Format:b kann sein: 0...7
d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:kein Einfluß

Siehe auch:Der Befehl RES
Arithmetische Operationen und Vergleiche



RES b,(IY+d)

Beschreibung: Das durch b angegebene Bit der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle wird zurückgesetzt.

Funktion:(IY+d)[b] := 0

Format:b kann sein: 0...7
d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:kein Einfluß

Siehe auch:Der Befehl RES
Arithmetische Operationen und Vergleiche



RESLD <Bit>,(<Indexreg.>+<Offset>),<Register>

Beschreibung: Der Inhalt der durch (<Indexreg.>+<Offset>) adressierten Speicherzelle wird ins <Register> geladen, Bit <Bit> zurückgesetzt und das Ergebnis zurückgeschrieben.

Adressierung:RESLD b,(IX+d),r
RESLD b,(IY+d),r

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl RES
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RESLD b,(IX+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle geladen. Dann wird das durch b angegebene Bit von r zurückgesetzt. Schließlich wird das Ergebnis auch nach (IX+d) zurückgeschrieben.

Funktion:
r := (IX+d)
r[b] := 0
(IX+d) := r

Format:b kann sein: 0...7
d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle RESLD, RES
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RESLD b,(IY+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle geladen. Dann wird das durch b angegebene Bit von r zurückgesetzt. Schließlich wird das Ergebnis auch nach (IY+d) zurückgeschrieben.

Funktion:
r := (IY+d)
r[b] := 0
(IY+d) := r

Format:b kann sein: 0...7
d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle RESLD, RES
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RET [<Bedingung>]

Beschreibung: Der Befehlszählers PC wird vom Stapel geholt. Ist eine Bedingung angegeben, so wird der Befehl nur ausgeführt, wenn sie erfüllt ist.

Adressierung:RET
RET cc

Siehe auch:Programmflußkontrolle



RET cc

Beschreibung: Der Befehlszähler PC wird von Stapel geholt, falls die Bedingung cc erfüllt ist.

Funktion:Falls cc erfüllt:
PC[7...0] := (SP)
SP := SP + 1
PC[15...8] := (SP)
SP := SP + 1

Format:cc kann sein: NZ,Z,NC,C,PO,PE,P,M

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
cc wahr3112,75 ms1,833 ms1,375 ms
cc falsch151,25 ms0,833 ms0,625 ms
Z180/HD64180
ZyklenZustände
cc wahr410
cc falsch35

Flags:kein Einfluß

Siehe auch:Die Befehle RET, CALL, POP
Programmflußkontrolle



RET

Beschreibung: Der Befehlszähler PC wird von Stapel geholt.

Funktion:
PC[7...0] := (SP)
SP := SP + 1
PC[15...8] := (SP)
SP := SP + 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3102,5 ms1,667 ms1,25 ms
Z180/HD64180
ZyklenZustände
39

Flags:kein Einfluß

Siehe auch:Die Befehle RET, CALL, POP
Programmflußkontrolle



RETI

Beschreibung: Rücksprung aus Interrupt-Behandlungs-Routine. Der Befehlszähler PC wird vom Stapel geholt. Die Peripheriebausteine von Zilog erkennen diesen Befehl als das Ende einer Interrupt-Service-Routine. Vor dem Befehl ist normalerweise ein EI erforderlich.

Funktion:
PC[7...0] := (SP)
SP := SP + 1
PC[15...8] := (SP)
SP := SP + 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4143,5 ms2,333 ms1,75 ms
Z180/HD64180
ZyklenZustände
412

Flags:kein Einfluß

Siehe auch:Die Befehle DI, EI, POP
Programmflußkontrolle



RETN

Beschreibung: Rücksprung aus NMI-Behandlungs-Routine. Der Befehlszähler PC wird vom Stapel geholt. Dann wird der Inhalt von IFF2 wieder nach IFF1 kopiert, um den Zustand des Interruptflags vor dem NMI wiederherzustellen.

Funktion:
PC[7...0] := (SP)
SP := SP + 1
PC[15...8] := (SP)
SP := SP + 1
IFF1 := IFF2

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4143,5 ms2,333 ms1,75 ms
Z180/HD64180
ZyklenZustände
412

Flags:kein Einfluß

Siehe auch:Die Befehle DI, EI, POP
Programmflußkontrolle



RL <Operand>

Beschreibung: Der <Operand> wird links durch das Übertragsbit rotiert.

Adressierung:RL r
RL (HL)
RL (IX+d)
RL (IY+d)

Siehe auch:Die Befehle RLLD, RLA
Arithmetische Operationen und Vergleiche



RL r

Beschreibung: Das Register r wird links rotiert. Der Inhalt des Übertragsbits wird nach Bit 0 und der Inhalt von Bit 7 ins Übertragsbit verschoben.

Funktion:
tmp := C
C := r[7]
r[7...1] := r[6...0]
r[0] := tmp

Format:r kann sein: A,B,C,D,E,H,L

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,333 ms1 ms
Z180/HD64180
ZyklenZustände
37

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RL
Arithmetische Operationen und Vergleiche



RL (HL)

Beschreibung: Der Inhalt der durch das Registerpaar HL adressierten Speicherzelle wird links rotiert. Der Inhalt des Übertragsbits wird nach Bit 0 und der Inhalt von Bit 7 ins Übertragsbit verschoben.

Funktion:
tmp := C
C := (HL)[7]
(HL)[7...1] := (HL)[6...0]
(HL)[0] := tmp

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
513

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RL
Arithmetische Operationen und Vergleiche



RL (IX+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle wird links rotiert. Der Inhalt des Übertragsbits wird nach Bit 0 und der Inhalt von Bit 7 ins Übertragsbit verschoben.

Funktion:
tmp := C
C := (IX+d)[7]
(IX+d)[7...1] := (IX+d)[6...0]
(IX+d)[0] := tmp

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RL
Arithmetische Operationen und Vergleiche



RL (IY+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle wird links rotiert. Der Inhalt des Übertragsbits wird nach Bit 0 und der Inhalt von Bit 7 ins Übertragsbit verschoben.

Funktion:
tmp := C
C := (IY+d)[7]
(IY+d)[7...1] := (IY+d)[6...0]
(IY+d)[0] := tmp

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RL
Arithmetische Operationen und Vergleiche



RLLD (<Indexreg.>+<Offset>),<Register>

Beschreibung: Der Inhalt der durch (<Indexreg.>+<Offset>) adressierten Speicherzelle wird ins <Register> geladen, das Register r durchs Übertragsflag links rotiert und das Ergebnis zurückgeschrieben.

Adressierung:RLLD (IX+d),r
RLLD (IY+d),r

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl RL
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RLLD (IX+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r links rotiert. Der Inhalt des Übertragsbits wird nach Bit 0 und der Inhalt von Bit 7 ins Übertragsbit verschoben. Schließlich wird das Ergebnis auch nach (IX+d) zurückgeschrieben.

Funktion:
r := (IX+d)
tmp := C
C := r[7]
r[7...1] := r[6...0]
r[0] := tmp
(IX+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle RLLD, RL
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RLLD (IY+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r links rotiert. Der Inhalt des Übertragsbits wird nach Bit 0 und der Inhalt von Bit 7 ins Übertragsbit verschoben. Schließlich wird das Ergebnis auch nach (IY+d) zurückgeschrieben.

Funktion:
r := (IY+d)
tmp := C
C := r[7]
r[7...1] := r[6...0]
r[0] := tmp
(IY+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle RLLD, RL
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RLA

Beschreibung: Der Akkumulator wird links rotiert. Der Inhalt des Übertragsbits wird nach Bit 0 und der Inhalt von Bit 7 ins Übertragsbit verschoben.

Funktion:
tmp := C
C := A[7]
A[7...1] := A[6...0]
A[0] := tmp

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13

Flags:
SZHP/VCN
=0Ö=0

Siehe auch:Der Befehl RL
Arithmetische Operationen und Vergleiche



RLC <Operand>

Beschreibung: Der <Operand> wird links rotiert. Bit 7 wird ins Übertragsflag kopiert und gleichzeitig in Bit 0 verschoben.

Adressierung:RLC r
RLC (HL)
RLC (IX+d)
RLC (IY+d)

Siehe auch:Die Befehle RLCLD, RLCA
Arithmetische Operationen und Vergleiche



RLC r

Beschreibung: Das Register r wird links rotiert. Der Inhalt von Bit 7 wird ins Übertragsbit und gleichzeitig nach Bit 0 verschoben.

Funktion:
C := r[7]
r[7...1] := r[6...0]
r[0] := C

Format:r kann sein: A,B,C,D,E,H,L

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,333 ms1 ms
Z180/HD64180
ZyklenZustände
37

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RLC
Arithmetische Operationen und Vergleiche



RLC (HL)

Beschreibung: Der Inhalt der durch das Registerpaar HL adressierten Speicherzelle wird links rotiert. Der Inhalt von Bit 7 wird ins Übertragsbit kopiert und gleichzeitig nach Bit 0 verschoben.

Funktion:
C := (HL)[7]
(HL)[7...1] := (HL)[6...0]
(HL)[0] := C

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
513

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RLC
Arithmetische Operationen und Vergleiche



RLC (IX+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle wird links rotiert. Der Inhalt von Bit 7 wird ins Übertragsbit kopiert und gleichzeitig nach Bit 0 verschoben.

Funktion:
C := (IX+d)[7]
(IX+d)[7...1] := (IX+d)[6...0]
(IX+d)[0] := C

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RLC
Arithmetische Operationen und Vergleiche



RLC (IY+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle wird links rotiert. Der Inhalt von Bit 7 wird ins Übertragsbit kopiert und gleichzeitig nach Bit 0 verschoben.

Funktion:
C := (IY+d)[7]
(IY+d)[7...1] := (IY+d)[6...0]
(IY+d)[0] := C

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RLC
Arithmetische Operationen und Vergleiche



RLCLD (<Indexreg.>+<Offset>),<Register>

Beschreibung: Der Inhalt der durch (<Indexreg.>+<Offset>) adressierten Speicherzelle wird ins <Register> geladen, das Register r links rotiert und das Ergebnis zurückgeschrieben.

Adressierung:RLCLD (IX+d),r
RLCLD (IY+d),r

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl RLC
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RLCLD (IX+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r links rotiert. Der Inhalt von Bit 7 wird ins Übertragsbit kopiert und gleichzeitig nach Bit 0 verschoben. Schließlich wird das Ergebnis auch nach (IX+d) zurückgeschrieben.

Funktion:
r := (IX+d)
C := r[7]
r[7...1] := r[6...0]
r[0] := C
(IX+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle RLCLD, RLC
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RLCLD (IY+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r links rotiert. Der Inhalt von Bit 7 wird ins Übertragsbit kopiert und gleichzeitig nach Bit 0 verschoben. Schließlich wird das Ergebnis auch nach (IY+d) zurückgeschrieben.

Funktion:
r := (IY+d)
C := r[7]
r[7...1] := r[6...0]
r[0] := C
(IY+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle RLCLD, RLC
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RLCA

Beschreibung: Der Akkumulator wird links rotiert. Der Inhalt von Bit 7 wird ins Übertragsbit kopiert und gleichzeitig nach Bit 0 verschoben.

Funktion:
C := A[7]
A[7...1] := A[6...0]
A[0] := C

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13

Flags:
SZHP/VCN
=0Ö=0

Siehe auch:Der Befehl RLC
Arithmetische Operationen und Vergleiche



RLD

Beschreibung: Die vier unteren Bit der durch HL adressierten Speicherzelle werden in die vier oberen Bits der gleichen Speicherzelle verschoben. Die oberen 4 Bits dieser Speicherzelle kommen in die vier unteren Bit des Akkus. Die vier unteren Bit des Akkus kommen in die vier unteren Bit der Speicherstelle.

Funktion:
tmp := A[3...0]
A[3...0] := (HL)[7...4]
(HL)[7...4] := (HL)[3...0]
(HL)[3...0] := tmp

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5184,5 ms3 ms2,25 ms
Z180/HD64180
ZyklenZustände
816

Flags:
SZHP/VCN
ÖÖ=0Ö=0

Siehe auch:Der Befehl RRD
Arithmetische Operationen und Vergleiche



RR <Operand>

Beschreibung: Der <Operand> wird rechts durch das Übertragsbit rotiert.

Adressierung:RR r
RR (HL)
RR (IX+d)
RR (IY+d)

Siehe auch:Die Befehle RRLD, RRA
Arithmetische Operationen und Vergleiche



RR r

Beschreibung: Das Register r wird rechts rotiert. Der Inhalt des Übertragsbits wird nach Bit 7 und der Inhalt von Bit 0 ins Übertragsbit verschoben.

Funktion:
tmp := C
C := r[0]
r[6...0] := r[7...1]
r[7] := tmp

Format:r kann sein: A,B,C,D,E,H,L

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,333 ms1 ms
Z180/HD64180
ZyklenZustände
37

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RR
Arithmetische Operationen und Vergleiche



RR (HL)

Beschreibung: Der Inhalt der durch das Registerpaar HL adressierten Speicherzelle wird rechts rotiert. Der Inhalt des Übertragsbits wird nach Bit 7 und der Inhalt von Bit 0 ins Übertragsbit verschoben.

Funktion:
tmp := C
C := (HL)[0]
(HL)[6...0] := (HL)[7...1]
(HL)[7] := tmp

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
513

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RR
Arithmetische Operationen und Vergleiche



RR (IX+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle wird rechts rotiert. Der Inhalt des Übertragsbits wird nach Bit 7 und der Inhalt von Bit 0 ins Übertragsbit verschoben.

Funktion:
tmp := C
C := (IX+d)[0]
(IX+d)[6...0] := (IX+d)[7...1]
(IX+d)[7] := tmp

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RR
Arithmetische Operationen und Vergleiche



RR (IY+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle wird rechts rotiert. Der Inhalt des Übertragsbits wird nach Bit 7 und der Inhalt von Bit 0 ins Übertragsbit verschoben.

Funktion:
tmp := C
C := (IY+d)[0]
(IY+d)[6...0] := (IY+d)[7...1]
(IY+d)[7] := tmp

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RR
Arithmetische Operationen und Vergleiche



RRLD (<Indexreg.>+<Offset>),<Register>

Beschreibung: Der Inhalt der durch (<Indexreg.>+<Offset>) adressierten Speicherzelle wird ins <Register> geladen, das Register r durchs Übertragsflag rechts rotiert und das Ergebnis zurückgeschrieben.

Adressierung:RRLD (IX+d),r
RRLD (IY+d),r

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl RR
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RRLD (IX+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r rechts rotiert. Der Inhalt des Übertragsbits wird nach Bit 7 und der Inhalt von Bit 0 ins Übertragsbit verschoben. Schließlich wird das Ergebnis auch nach (IX+d) zurückgeschrieben.

Funktion:
r := (IX+d)
tmp := C
C := r[0]
r[6...0] := r[7...1]
r[7] := tmp
(IX+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle RRLD, RR
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RRLD (IX+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r rechts rotiert. Der Inhalt des Übertragsbits wird nach Bit 7 und der Inhalt von Bit 0 ins Übertragsbit verschoben. Schließlich wird das Ergebnis auch nach (IY+d) zurückgeschrieben.

Funktion:
r := (IY+d)
tmp := C
C := r[0]
r[6...0] := r[7...1]
r[7] := tmp
(IY+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle RRLD, RR
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RRA

Beschreibung: Der Akkumulator wird rechts rotiert. Der Inhalt des Übertragsbits wird nach Bit 7 und der Inhalt von Bit 0 ins Übertragsbit verschoben.

Funktion:
tmp := C
C := A[0]
A[6...0] := A[7...1]
A[7] := tmp

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13

Flags:
SZHP/VCN
=0Ö=0

Siehe auch:Der Befehl RR
Arithmetische Operationen und Vergleiche



RRC <Operand>

Beschreibung: Der <Operand> wird rechts rotiert. Bit 0 wird ins Übertragsflag kopiert und gleichzeitig in Bit 7 verschoben.

Adressierung:RRC r
RRC (HL)
RRC (IX+d)
RRC (IY+d)

Siehe auch:Die Befehle RRCLD, RRCA
Arithmetische Operationen und Vergleiche



RRC r

Beschreibung: Das Register r wird rechts rotiert. Der Inhalt von Bit 0 wird ins Übertragsbit und gleichzeitig nach Bit 7 verschoben.

Funktion:
C := r[0]
r[6...0] := r[7...1]
r[7] := C

Format:r kann sein: A,B,C,D,E,H,L

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,333 ms1 ms
Z180/HD64180
ZyklenZustände
37

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RRC
Arithmetische Operationen und Vergleiche



RRC (HL)

Beschreibung: Der Inhalt der durch das Registerpaar HL adressierten Speicherzelle wird rechts rotiert. Der Inhalt von Bit 0 wird ins Übertragsbit kopiert und gleichzeitig nach Bit 1 verschoben.

Funktion:
C := (HL)[0]
(HL)[6...0] := (HL)[7...1]
(HL)[7] := C

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
513

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RRC
Arithmetische Operationen und Vergleiche



RRC (IX+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle wird rechts rotiert. Der Inhalt von Bit 0 wird ins Übertragsbit kopiert und gleichzeitig nach Bit 7 verschoben.

Funktion:
C := (IX+d)[0]
(IX+d)[6...0] := (IX+d)[7...1]
(IX+d)[7] := C

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RRC
Arithmetische Operationen und Vergleiche



RRC (IY+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle wird rechts rotiert. Der Inhalt von Bit 0 wird ins Übertragsbit kopiert und gleichzeitig nach Bit 7 verschoben.

Funktion:
C := (IY+d)[0]
(IY+d)[6...0] := (IY+d)[7...1]
(IY+d)[7] := C

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl RRC
Arithmetische Operationen und Vergleiche



RRCLD (<Indexreg.>+<Offset>),<Register>

Beschreibung: Der Inhalt der durch (<Indexreg.>+<Offset>) adressierten Speicherzelle wird ins <Register> geladen, das Register r rechts rotiert und das Ergebnis zurückgeschrieben.

Adressierung:RRCLD (IX+d),r
RRCLD (IY+d),r

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl RRC
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RRCLD (IX+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r rechts rotiert. Der Inhalt von Bit 0 wird ins Übertragsbit kopiert und gleichzeitig nach Bit 7 verschoben. Schließlich wird das Ergebnis auch nach (IX+d) zurückgeschrieben.

Funktion:
r := (IX+d)
C := r[0]
r[6...0] := r[7...1]
r[7] := C
(IX+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle RRCLD, RRC
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RRCLD (IY+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r rechts rotiert. Der Inhalt von Bit 0 wird ins Übertragsbit kopiert und gleichzeitig nach Bit 7 verschoben. Schließlich wird das Ergebnis auch nach (IY+d) zurückgeschrieben.

Funktion:
r := (IY+d)
C := r[0]
r[6...0] := r[7...1]
r[7] := C
(IY+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle RRCLD, RRC
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



RRCA

Beschreibung: Der Akkumulator wird rechts rotiert. Der Inhalt von Bit 0 wird ins Übertragsbit kopiert und gleichzeitig nach Bit 7 verschoben.

Funktion:
C := A[0]
A[6...0] := A[7...1]
A[7] := C

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13

Flags:
SZHP/VCN
=0Ö=0

Siehe auch:Der Befehl RRC
Arithmetische Operationen und Vergleiche



RRD

Beschreibung: Die vier oberen Bit der durch HL adressierten Speicherzelle werden in die vier unteren Bits der gleichen Speicherzelle verschoben. Die unteren 4 Bits dieser Speicherzelle kommen in die vier unteren Bit des Akkus. Die vier unteren Bit des Akkus kommen in die vier oberen Bit der Speicherstelle.

Funktion:
tmp := A[3...0]
A[3...0] := (HL)[3...0]
(HL)[3...0] := (HL)[7...4]
(HL)[7...4] := tmp

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5184,5 ms3 ms2,25 ms
Z180/HD64180
ZyklenZustände
816

Flags:
SZHP/VCN
ÖÖ=0Ö=0

Siehe auch:Der Befehl RLD
Arithmetische Operationen und Vergleiche



RST p

Beschreibung: Der Inhalt des Befehlszählers PC wird auf dem Stapel abgelegt. Dann wird der entsprechende Wert für p in den Befehlszähler geladen.

Funktion:
(SP-1) := PC[15...8]
(SP-2) := PC[7...0]
SP := SP - 2
PC := p

Format:p = 00h, 08h, 10h, 18h, 20h, 28h, 30h, 38h
Ist die erweiterte Syntax eingeschaltet, so sind auch die Werte 1...7 möglich, die gleichbedeutend mit 08h...38h sind.

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
3112,75 ms1,833 ms1,375 ms
Z180/HD64180
ZyklenZustände
511

Flags:kein Einfluß

Siehe auch:Der Befehl CALL
Programmflußkontrolle



SBC <Ziel-Minuend>,<Subtrahend>

Beschreibung: Subtraktion mit Übertrag

Adressierung:SBC A,r
SBC A,n
SBC A,(HL)
SBC A,(IX+d)
SBC A,(IY+d)
SBC HL,ss

Siehe auch:Arithmetische Operationen und Vergleiche



SBC A,r

Beschreibung: Das Register r und das Übertragsflag C aus dem Statusregister werden vom Akkumulator subtrahiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A - r - C

Format:r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: IXH,IXL,IYH,IYL

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Siehe auch:Der Befehl SBC
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SBC A,n

Beschreibung: Die direkten Daten n und das Übertragsflag C aus dem Statusregister werden vom Akkumulator subtrahiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A - n - C

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Siehe auch:Der Befehl SBC
Arithmetische Operationen und Vergleiche



SBC A,(HL)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse im Register HL steht, und das Übertragsflag C aus dem Statusregister werden vom Akkumulator subtrahiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A - (HL) - C

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Siehe auch:Der Befehl SBC
Arithmetische Operationen und Vergleiche



SBC A,(IX+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IX und dem unmittelbaren Offset d gebildet wird, und das Übertragsflag C aus dem Statusregister werden vom Akkumulator subtrahiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A - (IX+d) - C

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Siehe auch:Der Befehl SBC
Arithmetische Operationen und Vergleiche



SBC A,(IY+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IY und dem unmittelbaren Offset d gebildet wird, und das Übertragsflag C aus dem Statusregister werden vom Akkumulator subtrahiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A - (IY+d) - C

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Siehe auch:Der Befehl SBC
Arithmetische Operationen und Vergleiche



SBC HL,ss

Beschreibung: Vom Inhalt der Registerpaares HL wird der Inhalt des angegeben Registerpaares ss und das Carry-Flag subtrahiert. Das Endergebnis wird in HL gespeichert.

Format:ss kann sein: BC,DE,HL,SP

Funktion:HL := HL - ss - C

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
610

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Bemerkung:H=1, wenn ein Übertrag von Bit 12 auftritt.

Siehe auch:Der Befehl SBC
Arithmetische Operationen und Vergleiche



SCF

Beschreibung: Das Carry-(Übertrags-)flag wird gesetzt.

Funktion:C := 1

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
13

Flags:
SZHP/VCN
=0=1=0

Siehe auch:Arithmetische Operationen und Vergleiche



SET <Bit>,<Operand>

Beschreibung: Das Bit b des <Operanden> wird gesetzt.

Adressierung:SET b,r
SET b,(HL)
SET b,(IX+d)
SET b,(IY+d)

Siehe auch:Der Befehl SETLD
Arithmetische Operationen und Vergleiche



SET b,r

Beschreibung: Das durch b angegebene Bit des Registers r wird gesetzt.

Funktion:r[b] := 1

Format:r kann sein: A,B,C,D,E,H,L
b kann sein: 0...7

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,333 ms1 ms
Z180/HD64180
ZyklenZustände
37

Flags:kein Einfluß

Siehe auch:Der Befehl SET
Arithmetische Operationen und Vergleiche



SET b,(HL)

Beschreibung: Das durch b angegebene Bit der durch das Registerpaar HL adressierten Speicherzelle wird gesetzt.

Funktion:(HL)[b] := 1

Format:b kann sein: 0...7

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
513

Flags:kein Einfluß

Siehe auch:Der Befehl SET
Arithmetische Operationen und Vergleiche



SET b,(IX+d)

Beschreibung: Das durch b angegebene Bit der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle wird gesetzt.

Funktion:(IX+d)[b] := 1

Format:b kann sein: 0...7
d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:kein Einfluß

Siehe auch:Der Befehl SET
Arithmetische Operationen und Vergleiche



SET b,(IY+d)

Beschreibung: Das durch b angegebene Bit der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle wird gesetzt.

Funktion:(IY+d)[b] := 1

Format:b kann sein: 0...7
d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:kein Einfluß

Siehe auch:Der Befehl SET
Arithmetische Operationen und Vergleiche



SETLD <Bit>,(<Indexreg.>+<Offset>),<Register>

Beschreibung: Der Inhalt der durch (<Indexreg.>+<Offset>) adressierten Speicherzelle wird ins <Register> geladen, Bit <Bit> gesetzt und das Ergebnis zurückgeschrieben.

Adressierung:SETLD b,(IX+d),r
SETLD b,(IY+d),r

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl SET
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SETLD b,(IX+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle geladen. Dann wird das durch b angegebene Bit von r gesetzt. Schließlich wird das Ergebnis auch nach (IX+d) zurückgeschrieben.

Funktion:
r := (IX+d)
r[b] := 1
(IX+d) := r

Format:b kann sein: 0...7
d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle SETLD, SET
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SETLD b,(IY+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle geladen. Dann wird das durch b angegebene Bit von r gesetzt. Schließlich wird das Ergebnis auch nach (IY+d) zurückgeschrieben.

Funktion:
r := (IY+d)
r[b] := 1
(IY+d) := r

Format:b kann sein: 0...7
d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle SETLD, SET
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SL1 <Operand>

Beschreibung: Der <Operand> wird links verschoben und eine Eins in Bit 0 eingefügt.

Adressierung:SL1 r
SL1 (HL)
SL1 (IX+d)
SL1 (IY+d)

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl SL1LD
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SL1 r

Beschreibung: Der Inhalt des Registers r wird links verschoben. Der Inhalt von Bit 7 kommt ins Übertragsbit, in Bit 0 eine Eins.

Funktion:
C := r[7]
r[7...1] := r[6...0]
r[0] := 1

Format:r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl SL1
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SL1 (HL)

Beschreibung: Der Inhalt der durch das Registerpaar HL adressierten Speicherzelle wird links verschoben. Bit 7 kommt ins Übertragsbit und in Bit 0 eine Eins.

Funktion:
C := (HL)[7]
(HL)[7...1] := (HL)[6...0]
(HL)[0] := 1

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl SL1
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SL1 (IX+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle wird links verschoben. Bit 7 kommt ins Übertragsbit und in Bit 0 eine Eins.

Funktion:
C := (IX+d)[7]
(IX+d)[7...1] := (IX+d)[6...0]
(IX+d)[0] := 1

Format:d kann sein: -128...+127

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl SL1
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SL1 (IY+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle wird links verschoben. Bit 7 kommt ins Übertragsbit und in Bit 0 eine Eins.

Funktion:
C := (IY+d)[7]
(IY+d)[7...1] := (IY+d)[6...0]
(IY+d)[0] := 1

Format:d kann sein: -128...+127

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl SL1
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SL1LD (<Indexreg.>+<Offset>),<Register>

Beschreibung: Der Inhalt der durch (<Indexreg.>+<Offset>) adressierten Speicherzelle wird ins <Register> geladen, das Register r links verschoben, wobei eine Eins in Bit 0 eingefügt wird, und schlißlich das Ergebnis zurückgeschrieben.

Adressierung:SL1LD (IX+d),r
SL1LD (IY+d),r

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl SL1
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SL1LD (IX+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r links verschoben. Dabei kommt Bit 7 ins Übertragsbit und eine Eins in Bit 0. Schließlich wird das Ergebnis auch nach (IX+d) zurückgeschrieben.

Funktion:
r := (IX+d)
C := r[7]
r[7...1] := r[6...0]
r[0] := 1
(IX+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle SL1LD, SL1
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SL1LD (IY+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r links verschoben. Dabei kommt Bit 7 ins Übertragsbit und eine Eins in Bit 0. Schließlich wird das Ergebnis auch nach (IY+d) zurückgeschrieben.

Funktion:
r := (IY+d)
C := r[7]
r[7...1] := r[6...0]
r[0] := 1
(IY+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle SL1LD, SL1
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SLA <Operand>

Beschreibung: Der <Operand> wird arithmetisch links verschoben.

Adressierung:SLA r
SLA (HL)
SLA (IX+d)
SLA (IY+d)

Siehe auch:Die Befehle SLALD, SL1
Arithmetische Operationen und Vergleiche



SLA r

Beschreibung: Der Inhalt des Registers r wird arithmetisch links verschoben. Der Inhalt von Bit 7 kommt ins Übertragsbit, in Bit 0 eine Null.

Funktion:
C := r[7]
r[7...1] := r[6...0]
r[0] := 0

Format:r kann sein: A,B,C,D,E,H,L

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,333 ms1 ms
Z180/HD64180
ZyklenZustände
37

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl SLA
Arithmetische Operationen und Vergleiche



SLA (HL)

Beschreibung: Der Inhalt der durch das Registerpaar HL adressierten Speicherzelle wird arithmetisch links verschoben. Bit 7 kommt ins Übertragsbit und in Bit 0 eine Null.

Funktion:
C := (HL)[7]
(HL)[7...1] := (HL)[6...0]
(HL)[0] := 0

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
513

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl SLA
Arithmetische Operationen und Vergleiche



SLA (IX+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle wird arithmetisch links verschoben. Bit 7 kommt ins Übertragsbit und in Bit 0 eine Null.

Funktion:
C := (IX+d)[7]
(IX+d)[7...1] := (IX+d)[6...0]
(IX+d)[0] := 0

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl SLA
Arithmetische Operationen und Vergleiche



SLA (IY+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle wird arithmetisch links verschoben. Bit 7 kommt ins Übertragsbit und in Bit 0 eine Null.

Funktion:
C := (IY+d)[7]
(IY+d)[7...1] := (IY+d)[6...0]
(IY+d)[0] := 0

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl SLA
Arithmetische Operationen und Vergleiche



SLALD (<Indexreg.>+<Offset>),<Register>

Beschreibung: Der Inhalt der durch (<Indexreg.>+<Offset>) adressierten Speicherzelle wird ins <Register> geladen, das Register r arithmetisch links verschoben und das Ergebnis zurückgeschrieben.

Adressierung:SLALD (IX+d),r
SLALD (IY+d),r

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl SLA
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SLALD (IX+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r arithmetisch links verschoben. Dabei kommt Bit 7 ins Übertragsbit und eine Null in Bit 0. Schließlich wird das Ergebnis auch nach (IX+d) zurückgeschrieben.

Funktion:
r := (IX+d)
C := r[7]
r[7...1] := r[6...0]
r[0] := 0
(IX+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle SLALD, SLA
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SLALD (IY+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r arithmetisch links verschoben. Dabei kommt Bit 7 ins Übertragsbit und eine Null in Bit 0. Schließlich wird das Ergebnis auch nach (IY+d) zurückgeschrieben.

Funktion:
r := (IY+d)
C := r[7]
r[7...1] := r[6...0]
r[0] := 0
(IY+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle SLALD, SLA
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SLP

Beschreibung: Die CPU wird angehalten und schaltet in den SLEEP low power consumption mode.
Dieser Befehl steht nur im Z180 zur Verfügung.

Funktion:
CPU-Takt abschalten
Oszillator läuft weiter
Interrupts weiterhin möglich
DRAM Refresh wird abgeschaltet
On-Chip Peripherie läuft weiter
On-Chip DMAC wird angehalten
BUSREQ-Eingang bleibt aktiv
A0...A18 und Steuerleitungen high
Datenbus hochohmig

Ausführungszeit:Z180/HD64180
ZyklenZustände
28

Flags:kein Einfluß

Siehe auch:Systemkontrolle
Zusätzliche Befehle im Z180



SRA <Operand>

Beschreibung: Der <Operand> wird arithmetisch rechts verschoben.

Adressierung:SRA r
SRA (HL)
SRA (IX+d)
SRA (IY+d)

Siehe auch:Die Befehle SRALD, SRL
Arithmetische Operationen und Vergleiche



SRA r

Beschreibung: Der Inhalt des Registers r wird arithmetisch rechts verschoben. Der Inhalt von Bit 0 kommt ins Übertragsbit, Bit 7 bleibt unverändert.

Funktion:
C := r[0]
r[6...0] := r[7...1]

Format:r kann sein: A,B,C,D,E,H,L

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,333 ms1 ms
Z180/HD64180
ZyklenZustände
37

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl SRA
Arithmetische Operationen und Vergleiche



SRA (HL)

Beschreibung: Der Inhalt der durch das Registerpaar HL adressierten Speicherzelle wird arithmetisch rechts verschoben. Bit 0 kommt ins Übertragsbit und Bit 7 bleibt unverändert.

Funktion:
C := (HL)[0]
(HL)[6...0] := (HL)[7...1]

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
513

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl SRA
Arithmetische Operationen und Vergleiche



SRA (IX+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle wird arithmetisch rechts verschoben. Bit 0 kommt ins Übertragsbit und Bit 7 bleibt unverändert.

Funktion:
C := (IX+d)[0]
(IX+d)[6...0] := (IX+d)[7...1]

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl SRA
Arithmetische Operationen und Vergleiche



SRA (IY+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle wird arithmetisch rechts verschoben. Bit 0 kommt ins Übertragsbit und Bit 7 bleibt unverändert.

Funktion:
C := (IY+d)[0]
(IY+d)[6...0] := (IY+d)[7...1]

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl SRA
Arithmetische Operationen und Vergleiche



SRALD (<Indexreg.>+<Offset>),<Register>

Beschreibung: Der Inhalt der durch (<Indexreg.>+<Offset>) adressierten Speicherzelle wird ins <Register> geladen, das Register r arithmetisch rechts verschoben und das Ergebnis zurückgeschrieben.

Adressierung:SRALD (IX+d),r
SRALD (IY+d),r

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl SRA
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SRALD (IX+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r arithmetisch rechts verschoben. Dabei kommt Bit 0 ins Übertragsbit und Bit 7 bleibt unverändert. Schließlich wird das Ergebnis auch nach (IX+d) zurückgeschrieben.

Funktion:
r := (IX+d)
C := r[0]
r[6...0] := r[7...1]
(IX+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle SRALD, SRA
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SRALD (IY+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r arithmetisch rechts verschoben. Dabei kommt Bit 0 ins Übertragsbit und Bit 7 bleibt unverändert. Schließlich wird das Ergebnis auch nach (IY+d) zurückgeschrieben.

Funktion:
r := (IY+d)
C := r[0]
r[6...0] := r[7...1]
(IY+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle SRALD, SRA
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SRL <Operand>

Beschreibung: Der <Operand> wird logisch rechts verschoben.

Adressierung:SRL r
SRL (HL)
SRL (IX+d)
SRL (IY+d)

Siehe auch:Die Befehle SRLLD, SRA
Arithmetische Operationen und Vergleiche



SRL r

Beschreibung: Der Inhalt des Registers r wird logisch rechts verschoben. Der Inhalt von Bit 0 kommt ins Übertragsbit und eine Null in Bit 7.

Funktion:
C := r[0]
r[6...0] := r[7...1]
r[7] := 0

Format:r kann sein: A,B,C,D,E,H,L

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
282 ms1,333 ms1 ms
Z180/HD64180
ZyklenZustände
37

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl SRL
Arithmetische Operationen und Vergleiche



SRL (HL)

Beschreibung: Der Inhalt der durch das Registerpaar HL adressierten Speicherzelle wird logisch rechts verschoben. Bit 0 kommt ins Übertragsbit und eine Null in Bit 7.

Funktion:
C := (HL)[0]
(HL)[6...0] := (HL)[7...1]
(HL)[7] := 0

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
4153,75 ms2,5 ms1,875 ms
Z180/HD64180
ZyklenZustände
513

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl SRL
Arithmetische Operationen und Vergleiche



SRL (IX+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle wird logisch rechts verschoben. Bit 0 kommt ins Übertragsbit und eine Null in Bit 7.

Funktion:
C := (IX+d)[0]
(IX+d)[6...0] := (IX+d)[7...1]
(IX+d)[7] := 0

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl SRL
Arithmetische Operationen und Vergleiche



SRL (IY+d)

Beschreibung: Der Inhalt der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle wird logisch rechts verschoben. Bit 0 kommt ins Übertragsbit und eine Null in Bit 7.

Funktion:
C := (IY+d)[0]
(IY+d)[6...0] := (IY+d)[7...1]
(IY+d)[7] := 0

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
6235,75 ms3,833 ms2,875 ms
Z180/HD64180
ZyklenZustände
719

Flags:
SZHP/VCN
ÖÖ=0ÖÖ=0

Siehe auch:Der Befehl SRL
Arithmetische Operationen und Vergleiche



SRLLD (<Indexreg.>+<Offset>),<Register>

Beschreibung: Der Inhalt der durch (<Indexreg.>+<Offset>) adressierten Speicherzelle wird ins <Register> geladen, das Register r logisch rechts verschoben und das Ergebnis zurückgeschrieben.

Adressierung:SRLLD (IX+d),r
SRLLD (IY+d),r

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Der Befehl SRL
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SRLLD (IX+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IX und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r logisch rechts verschoben. Dabei kommt Bit 0 ins Übertragsbit und eine Null in Bit 7. Schließlich wird das Ergebnis auch nach (IX+d) zurückgeschrieben.

Funktion:
r := (IX+d)
C := r[0]
r[6...0] := r[7...1]
r[7] := 0
(IX+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle SRLLD, SRL
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SRLLD (IY+d),r

Beschreibung: Das Register r wird aus der durch die (vorzeichenbehaftete) Summe aus dem Indexregister IY und dem Offset d adressierten Speicherzelle geladen. Dann wird der Inhalt des Registers r logisch rechts verschoben. Dabei kommt Bit 0 ins Übertragsbit und eine Null in Bit 7. Schließlich wird das Ergebnis auch nach (IY+d) zurückgeschrieben.

Funktion:
r := (IY+d)
C := r[0]
r[6...0] := r[7...1]
r[7] := 0
(IY+d) := r

Format:d kann sein: -128...+127
r kann sein: A,B,C,D,E,H,L

Bemerkung:Dieser Befehl ist undokumentiert. Die Funktion ist nicht auf jedem Z80-Prozessor garantiert.

Siehe auch:Die Befehle SRLLD, SRL
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SUB <Subtrahend>

Beschreibung: Subtraktion ohne Übertrag

Adressierung:SUB r
SUB n
SUB (HL)
SUB (IX+d)
SUB (IY+d)

Siehe auch:Arithmetische Operationen und Vergleiche



SUB r

Beschreibung: Das Register r wird vom Akkumulator subtrahiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A - r

Format:r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: IXH,IXL,IYH,IYL

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form SUB A,r zulässig.

Siehe auch:Der Befehl SUB
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



SUB n

Beschreibung: Die direkten Daten n werden vom Akkumulator subtrahiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A - n

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form SUB A,n zulässig.

Siehe auch:Der Befehl SUB
Arithmetische Operationen und Vergleiche



SUB (HL)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse im Register HL steht, wird vom Akkumulator subtrahiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A - (HL)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form SUB A,(HL) zulässig.

Siehe auch:Der Befehl SUB
Arithmetische Operationen und Vergleiche



SUB A,(IX+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IX und dem unmittelbaren Offset d gebildet wird, wird vom Akkumulator subtrahiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A - (IX+d)

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form SUB A,(IX+d) zulässig.

Siehe auch:Der Befehl SUB
Arithmetische Operationen und Vergleiche



SUB A,(IY+d)

Beschreibung: Der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IY und dem unmittelbaren Offset d gebildet wird, wird vom Akkumulator subtrahiert und das Ergebnis im Akkumulator gespeichert.

Funktion:A := A - (YX+d)

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖÖÖÖ=1

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form SUB A,(IY+d) zulässig.

Siehe auch:Der Befehl SUB
Arithmetische Operationen und Vergleiche



TST <Operand>

Beschreibung: Logische "UND"-Verknüpfung von Akkumulator und <Operand>. Das Ergebnis wird verworfen, nur die Flags werden aktualisiert.
Dieser Befehl steht nur im Z180 zur Verfügung.

Adressierung:TST r
TST n
TST (HL)

Siehe auch:Arithmetische Operationen und Vergleiche
Zusätzliche Befehle im Z180



TST r

Beschreibung: Der Inhalt des Akkumulators und des angegebenen Registers r werden UND-verknüpft und die Flags entsprechend dem Ergebnis gesetzt. Das Ergebnis selbst wird verworfen.
Dieser Befehl steht nur im Z180 zur Verfügung.

Format:r kann sein: B,C,D,E,H,L,A

Funktion:A Ù r

Ausführungszeit:Z180/HD64180
ZyklenZustände
37

Flags:
SZHP/VCN
ÖÖ=1Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form TST A,r zulässig.

Siehe auch:Die Befehle TST, TSTIO
Arithmetische Operationen und Vergleiche
Zusätzliche Befehle im Z180



TST n

Beschreibung: Der Inhalt des Akkumulators und der angegebenen direkten Daten n werden UND-verknüpft und die Flags entsprechend dem Ergebnis gesetzt. Das Ergebnis selbst wird verworfen.
Dieser Befehl steht nur im Z180 zur Verfügung.

Format:n kann sein: -128...+255

Funktion:A Ù n

Ausführungszeit:Z180/HD64180
ZyklenZustände
39

Flags:
SZHP/VCN
ÖÖ=1Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form TST A,n zulässig.

Siehe auch:Die Befehle TST, TSTIO
Arithmetische Operationen und Vergleiche
Zusätzliche Befehle im Z180



TST (HL)

Beschreibung: Der Inhalt des Akkumulators und der durch das Registerpaar HL adressierten Speicherzelle werden UND-verknüpft und die Flags entsprechend dem Ergebnis gesetzt. Das Ergebnis selbst wird verworfen.
Dieser Befehl steht nur im Z180 zur Verfügung.

Funktion:A Ù (HL)

Ausführungszeit:Z180/HD64180
ZyklenZustände
410

Flags:
SZHP/VCN
ÖÖ=1Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form TST A,(HL) zulässig.

Siehe auch:Die Befehle TST, TSTIO
Arithmetische Operationen und Vergleiche
Zusätzliche Befehle im Z180



TSTIO n

Beschreibung: Es wird ein Datenbyte vom durch C adressierten Peripheriegerät gelesen und mit den direkten Daten n UND-verknüpft und die Flags entsprechend dem Ergebnis gesetzt. Das Ergebnis selbst wird verworfen. C liefert die Bits 0-7 der I/O-Adresse, die Bits 8-15 werden auf 0 gesetzt.
Dieser Befehl steht nur im Z180 zur Verfügung.

Funktion:Port(C) Ù n

Ausführungszeit:Z180/HD64180
ZyklenZustände
412

Flags:
SZHP/VCN
ÖÖ=1Ö=0=0

Siehe auch:Der Befehl TST
Ein-/Ausgabe
Zusätzliche Befehle im Z180



XOR <Operand>

Beschreibung: Logische "EXKLUSIV-ODER"-Verknüpfung

Adressierung:XOR r
XOR n
XOR (HL)
XOR (IX+d)
XOR (IY+d)

Siehe auch:Arithmetische Operationen und Vergleiche



XOR r

Beschreibung: Der Akkumulator und das Register r werden logisch "EXKLUSIV-ODER" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A xor r

Format:r kann sein: A,B,C,D,E,H,L
Z80 undokumentiert: IXH,IXL,IYH,IYL

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
141 ms0,667 ms0,5 ms
Z180/HD64180
ZyklenZustände
24

Flags:
SZHP/VCN
ÖÖ=0Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form XOR A,r zulässig.

Siehe auch:Der Befehl XOR
Arithmetische Operationen und Vergleiche
Undokumentierte Instruktionen



XOR n

Beschreibung: Der Akkumulator und die direkten Daten n werden logisch "EXKLUSIV-ODER" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A xor n

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖ=0Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form XOR A,n zulässig.

Siehe auch:Der Befehl XOR
Arithmetische Operationen und Vergleiche



XOR (HL)

Beschreibung: Der Akkumulator und der Inhalt der Speicherstelle, deren Adresse im Register HL steht, werden logisch "EXKLUSIV-ODER" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A xor (HL)

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
271,75 ms1,167 ms0,875 ms
Z180/HD64180
ZyklenZustände
26

Flags:
SZHP/VCN
ÖÖ=0Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form XOR A,(HL) zulässig.

Siehe auch:Der Befehl XOR
Arithmetische Operationen und Vergleiche



XOR (IX+d)

Beschreibung: Der Akkumulator und der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IX und dem direkten Offset d gebildet wird, werden logisch "EXKLUSIV-ODER" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A xor (IX+d)

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖ=0Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form XOR A,(IX+d) zulässig.

Siehe auch:Der Befehl XOR
Arithmetische Operationen und Vergleiche



XOR (IY+d)

Beschreibung: Der Akkumulator und der Inhalt der Speicherstelle, deren Adresse aus der (vorzeichenbehafteten) Summe vom Indexregister IY und dem direkten Offset d gebildet wird, werden logisch "EXKLUSIV-ODER" verknüpft und das Ergebnis im Akku abgelegt.

Funktion:A := A xor (IY+d)

Format:d kann sein: -128...+127

Ausführungszeit:Z80
ZyklenTakte4 MHz6 MHz8 MHz
5194,75 ms3,167 ms2,375 ms
Z180/HD64180
ZyklenZustände
614

Flags:
SZHP/VCN
ÖÖ=0Ö=0=0

Bemerkung:Ist die erweiterte Syntax eingeschaltet, so ist auch die Form XOR A,(IY+d) zulässig.

Siehe auch:Der Befehl XOR
Arithmetische Operationen und Vergleiche



Z80 Befehlsreferenz

Arithmetische Operationen und Vergleiche
Programmflußkontrolle
Datentransfer
Ein-/Ausgabe
Systemkontrolle

Undokumentierte Z80-Befehle

Zusätzliche Befehle im Z180/HD64180

Siehe auch: Assemblerreferenz


Arithmetische Operationen und Vergleiche

ADC Addiere mit Übertrag
ADDAddiere ohne Übertrag
SBCSubtrahiere mit Übertrag
SUBSubtrahiere ohne Übertrag
NEGZweierkomplement
MLTNur Z180: Multiplikation

DECDekrementiere
INCInkrementiere

CPVergleich
CPDBlockvergleich mit Dekrement
CPDRBlockvergleich mit Dekrement und Wiederholung
CPIBlockvergleich mit Inkrement
CPIRBlockvergleich mit Inkrement und Wiederholung

BITBitweise Abfrage

CPLEinerkomplement
ANDLogische UND-Verknüpfung
ORLogische ODER-Verknüpfung
XORLogische EXKLUSIV-ODER-Verknüpfung
TSTNur Z180: TEST (logische UND-Verknüpfung, Ergebnis verwerfen)

DAADezimalabgleich für BCD-Darstellung
RLDDezimalrotation links
RRDDezimalrotation rechts

RESSetze Bit zurück
RESLDSetze Bit zurück und lade
SETSetze Bit
SETLDSetze Bit und lade
CCFKomplementiere Carry-Flag
SCFSetze Carry-Flag

RLRotiere links
RLLDRotiere links und lade
RLARotiere Akku links
RLCRotiere links ohne Carry
RLCLDRotiere links ohne Carry und lade
RLCARotiere Akku links ohne Carry
RRRotiere rechts
RRLDRotiere rechts und lade
RRARotiere Akku rechts
RRCRotiere rechts ohne Carry
RRCLDRotiere rechts ohne Carry und lade
RRCARotiere Akku rechts ohne Carry

SLASchiebe links arithmetisch
SLALDSchiebe links arithmetisch und lade
SL1Schiebe links und füge 1 ein
SL1LDSchiebe links, füge 1 ein und lade
SRASchiebe rechts arithmetisch
SRALDSchiebe rechts arithmetisch und lade
SRLSchiebe rechts logisch
SRLLDSchiebe rechts logisch und lade

Siehe auch: Z80 Befehlsreferenz



Programmflußkontrolle

CALL Unterprogrammaufruf
RSTUnterprogrammaufruf zu festen Adressen

RETRückkehr aus Unterprogramm
RETIRückkehr aus Interrupt-Behandlung
RETNRückkehr aus NMI-Behandlung

DJNZDekrementiere und springe relativ, falls nicht Null
JPAbsoluter Sprung
JRRelativer Sprung

Siehe auch: Z80 Befehlsreferenz



Datentransfer

LD Datentransfer
LDDDatentransfer und Dekrement
LDDRDatentransfer und Dekrement mit Wiederholung
LDIDatentransfer und Inkrement
LDIRDatentransfer und Inkrement mit Wiederholung

POPVom Stapel lesen
PUSHAuf dem Stapel ablegen

Siehe auch: Z80 Befehlsreferenz



Ein-/Ausgabeoperationen

IN I/O-Port lesen
OUTI/O-Port schreiben

IN0Nur Z180: I/O-Port in Seite 0 lesen
OUT0Nur Z180: I/O-Port in Seite 0 schreiben

INDEingabe und Dekrement
INDREingabe und Dekrement mit Wiederholung
INIEingabe und Inkrement
INIREingabe und Inkrement mit Wiederholung

OUTDAusgabe und Dekrement
OTDRAusgabe und Dekrement mit Wiederholung
OUTIAusgabe und Inkrement
OTIRAusgabe und Inkrement mit Wiederholung

OTDMNur Z180: Ausgabe, Dekrement von Speicher- und I/O-Adresse
OTDMRNur Z180: Ausgabe, Dekrement von Speicher- und I/O-Adresse mit Wiederholung
OTIMNur Z180: Ausgabe, Inkrement von Speicher- und I/O-Adresse
OTIMRNur Z180: Ausgabe, Inkrement von Speicher- und I/O-Adresse mit Wiederholung

TSTIONur Z180: UND-Verknüpfung von I/O-Port und Daten, nur Flags aktualisieren

Siehe auch: Z80 Befehlsreferenz



Systemkontrolle

DI Interrupts sperren
EIInterrupts freigeben
IMInterruptmodus festlegen

EXRegistertausch / Zweitregistertausch
EXXZweitregistertausch

HALTProzessor bis Interrupt anhalten
SLPNur Z180: Prozessor in SLEEP-Modus schalten
NOPkeine Operation

Siehe auch: Z80 Befehlsreferenz



Undokumentierte Instruktionen

Im Z80-Prozessor existieren eine Reihe von Befehlen, die von Zilog nicht dokumentiert wurden. Es gibt daher keine Gewähr für ihre Funktion auf einer beliebigen Z80-CPU. Ihre Anwendung kann aber im Einzelfall durchaus Vorteile bringen.
Der Assembler unterstützt daher undokumentierte Z80-Befehle, wenn die entsprechende Option eingeschaltet ist.
Achtung: Die Z80-kompatiblen CPUs wie der Z180/HD64180 unterstützen die undokumentierten Befehle des Z80 nicht, sondern lösen einen unknown opcode trap Interrupt aus.

Die Indexregister
Die beiden Indexregister IX und IY lassen sich auch geteilt ansprechen wie die anderen Registerpaare. Hierfür werden die Symbole IXH, IXL, IYH, IYL verwendet. Bei fast allen Befehlen, die die Register H und L betreffen, lassen sich auch die Indexregisterhälften einsetzen (allerdings nie in Kombination mit H oder L oder IX/IY vermischt). Im einzelnen betrifft dies die Befehle ADC A,r, ADD A,r, AND r, CP r, DEC r, INC r, LD r,n, LD r,r', OR r, SBC A,r, SUB r, XOR r.

Neue Befehle
Es existiert eine ganze Gruppe von undokumentierten Befehlen, die alle eine Gemeinsamkeit haben: Ein Datenbyte wird aus dem RAM gelesen, adressiert durch IX oder IY, modifiziert und gleichzeitig zurück ins RAM und in eines der Register A,B,C,D,E,H,L geschrieben. Naturgemäß gibt es keine standardisierten Opcodes für diese Befehle, daher wurden folgende Bezeichner gewählt: RESLD, RLLD, RLCLD, RRLD, RRCLD, SETLD, SLALD, SRALD, SRLLD.
Weiterhin existiert ein "linkes" Äquivalent zum logischen Rechtsschieben. Da jedoch das arithmetische Linksschieben gleichzeitig auch logisch funktioniert, wurde als Bezeichner SL1 gewählt. Natürlich gibt es auch hier die Kombination SL1LD.

Ein-/Ausgabe
Abschließend gibt es noch eine Modifkation der I/O-Befehle:
IN F,(C) liest Daten ein und setzt die Flags entsprechend, hierbei gilt die Zuordnung:
FlagBitposition
S7
Z6
H4
P/V2
N1
C0
OUT (C),0 schreibt eine Null auf den angegebenen Port.

Siehe auch: Z80 Befehlsreferenz


Zusätzliche Befehle im Z180

IN0 I/O-Port in Seite 0 lesen
MLTMultiplikation
OUT0I/O-Port in Seite 0 schreiben
OTDMAusgabe, Dekrement von Speicher- und I/O-Adresse
OTDMRAusgabe, Dekrement von Speicher- und I/O-Adresse mit Wiederholung
OTIMAusgabe, Inkrement von Speicher- und I/O-Adresse
OTIMRAusgabe, Inkrement von Speicher- und I/O-Adresse mit Wiederholung
SLPProzessor in SLEEP-Modus schalten
TSTTEST (logische UND-Verknüpfung, Ergebnis verwerfen)
TSTIOUND-Verknüpfung von I/O-Port und Daten, nur Flags aktualisieren

Siehe auch: Z80 Befehlsreferenz



Erweiterte Syntax

Ist die entsprechende Assembler-Option eingeschaltet, so gelten erweiterte Syntaxregeln für den Assembler, die einige häufige Flüchtigkeitsfehler "ausbügeln" bzw. mehr Bequemlichkeit schaffen, z.B. ermöglichen sie den Befehl LD BC,DE.

Im einzelnen werden folgende Befehle beeinflußt:
AND
EX
LD dd,dd'
OR
RST
SUB
TST (Nur Z180) und
XOR.

Siehe auch: Assemblerreferenz


Prozessorabhängige Fehlermeldungen

Im folgenden sind die assemblerspezifischen Fehlermeldungen aufgelistet. Eine Liste aller allgemeinen Fehlermeldungen finden Sie hier.

E10065 - Syntaxfehler
Der Befehl ist korrekt, jedoch liegt ein Fehler bei den Parametern vor.

E10066 - Kein Parameter erwartet
Der verwendete Befehl benötigt keinen Parameter, Sie haben jedoch einen Parameter angegeben.

E10067 - Parameter erwartet
Der verwendete Befehl erfordert einen Parameter, es wurde aber keiner angegeben.

E10068 - Ausdruck außerhalb des zulässigen Wertebereichs
Der verwendete Konstanten-Ausdruck liefert einen Wert außerhalb des zulässigen Bereichs zurück.

E10069 - Zweiter Parameter erwartet
Der verwendete Befehl erfordert einen zweiten Parameter, es wurde aber nur einer angegeben.

E10070 - Zu viele Parameter
Es wurden mehr Parameter angegeben, als der Befehl vorsieht.

E10071 - Argument hier nicht zulässig
Einer der verwendeten Parameter ist bei diesem Befehl nicht zulässig.

E10072 - Sprungziel nicht erreichbar (Offset zu groß)
Die gewünschte Zieladresse kann mit einem relativen Sprungbefehl (JR, DJNZ) nicht erreicht werden. Verwenden Sie stattdessen einen absoluten Sprung (JP).

E10073 - Dritter Parameter erwartet
Der verwendete Befehl erfordert einen dritten Parameter, es wurden aber nur zwei angegeben.