Z80 CPU - die Funktionelle Befehlsdokumentation history menue Letztmalig dran rumgefummelt: 20.09.13 03:36:09
Die insgesamt 796 Befehle auf Basis von 158 Grundbefehlen lassen sich in insgesamt 13 Gruppen fassen und wirken dann spezifisch auf Register, Adressen, adressierte Speicherzellen sowie deren Distanzen. Für die Programmierung ist deren innerer Funktionsablauf grundlegend in seiner Bedeutung.

  Funktionale Befehlsdokumentation eingescannt 
  0. Alphabetische Befehlsübersicht und Beschreibung 
  1. Ladebefehle
  2. Austauschbefehle
  3. Stapelbefehle
  4. CALL- und JUMP-Befehle sowie Rückkehr
  5. RESTART-Befehle
  6. Arithmetikbefehle
  7. Logische Befehle
  8. SET- und RESET-Befehle
  9. Schiebe- und Rotationsbefehle
10. Interruptsteuerungsbefehle
11. CPU-Steuerung
12. Ein- und Ausgabebefehle
13. Blockbefehle

Quellen: Praktische Mikrocomputertechnik
 

Befehle werden dem Mikroprozessor in Form von Binärwörtern zugeführt. Diese können 1 bis 4 Byte umfassen. Jeder Befehl enthält mindestens 2 Aussagen: 

  • welche Operation ist auszuführen?
  • mit welchen Operanden ist die Operation auszuführen? 
Operationsteil Operanden- und Adressteil

Bei Ein-Byte-Befehlen sind Operationsteil und Operandenteil zu einem Byte zusammengefasst. Befehle können in verschiedenen Sprachen beschrieben werden!

Viele Befehle beeinflussen die FLAG-Register der CPU - hier die Einzelwirkung

Dabei können die Operanden direkt gegeben sein, in den meisten Fällen ist jedoch die Adresse der Operanden gegeben. Somit besteht ein Befehl aus:

  • durch vollständige Beschreibung des Befehlsinhaltes, z. B.: Addiere den Inhalt des Registers C zum Akkumulatorinhalt A 
  • durch Abkürzung des Befehles mit einer "Mnemonik', z. B.:  ADD C
  • in Maschinensprache als Bitwert oder in der vereinfachenden hexadezimalen Schreibweise, z.B.: 10000001 R = 81 H. 
Es werden folgende Symbole sowie Vereinbarungen zur Kennzeichnung allgemeiner Operanden benutzt:
r Inhalt eines der Register A, B, C, D, E, H, L Inhalt des Speicherplatzes, dessen Adresse im Registerpaar HL steht, M  = (HL)
n 8-bit-Konstante oder 8-bit-Portadresse umfasst die Operanden r, a, vielfach auch n 
nn 16-bit-Konstante oder 16-bit Speicherplatzadresse 
(nn) Inhalt des Speicherplatzes mit der Adresse nn
d bei indizierter Adressierung (IX, IY) 8-bit-Abstandswert in Zweierkomplementdarstellung (d von -128 bis +127) 
e bei relativen Sprüngen 8-bit-Abstandswert in Zweierkomplementdarstellung (e von -126 bis +129). Achtung: In Operationskode ist e-2 einzusetzen, da PC vor der Addition mit e bereits um 2 erhöht wurde.

Funktionale Befehlsübersicht schnell mal eingescannt history menue scroll up
Das hier nun sind die Detailbeschreibungen - gut - Laufzeiten (also Taktzyklen) fehlen - die kann man aber in den entsprechenden Referenzen finden. Für ungefähre - also unsere Operationen gilt: je höher die Taktfrequenz, um so schneller die Befehlsabarbeitung - Laufzeiten sind für unsere theoretischen Betrachtungen nicht wirklich wichtig ;-)

Funktionale Befehlsübersicht des Z80-Prozessors


0. Befehlsübersicht history menue scroll up
Zum eigentlichen Programmieren von Mirorechnern auf Grundlage des Z80-Systems und egal auf welcher Ebene, ist die Kenntnis der Funktionsweise der einzelnen Befehle von geradezu herausragender Bedeutung. Ohne die Kenntnis ist insbesondere strukturiertes Programmieren nicht möglich, da keine Befehle auf Hochsprachenbasis vorhanden sind. Vielmehr ist nur die korrekte Auswertung der einzelnen Flag-Bits zur Programmsteuerung möglich (aber auch hinreichend).
Object-Code Beschreibung Kurzbeschreibung Link auf vollständige OP-Code-Liste Allgemeine Befehlsbeschreibung und FLAG-Wirkung Detaillierte Funktionsbeschreibung
ADC  Add through CARRY-Flag  Addiert 8-Bit Werte sowie den Inhalt des CARRY-Flag zu A siehe hier siehe hier siehe hier
ADD  Add Addiert 8-Bit Werte zu A, ZERO, SIGN, PARITY sowie EVEN-Bit werden in Abhängigkeit gesetzt siehe hier siehe hier siehe hier
AND Logical And Bitweise AND-Logik von 8-Bit Werten sowie A (Zielbit gleich 1, wenn beide der beteiligten Bits gleich 1) siehe hier siehe hier siehe hier
BIT Test Bit Zielbit wird auf 1 verglichen, wenn Ergebnis wahr, dann ZERO-FLAG gleich 0, sonst 1 siehe hier siehe hier siehe hier
CAC Call On CARRY Aufruf eines Unterprogrammes, wenn CARRY gleich 1 siehe hier siehe hier siehe hier
CAM Call M Aufruf eines Unterprogrammes, welches durch HL adressiert wird siehe hier siehe hier siehe hier
CANC Call On Not CARRY Aufruf eines Unterprogrammes, wenn CARRY gleich 0 siehe hier siehe hier siehe hier
CALL Call Aufruf eines Unterprogrammes siehe hier siehe hier siehe hier
CANZ Call On Not ZERO Aufruf eines Unterprogrammes, wenn ZERO gleich 0 siehe hier siehe hier siehe hier
CAP Call On PARITY Aufruf eines Unterprogrammes, wenn PARITY gleich 0 siehe hier siehe hier siehe hier
CAPE Call On PARITY Even Aufruf eines Unterprogrammes, wenn Ergebnis-Byte paarig siehe hier siehe hier siehe hier
CAPO Call On PARITY Odd Aufruf eines Unterprogrammes, wenn Ergebnis-Byte unpaarig siehe hier siehe hier siehe hier
CAZ Call On ZERO Aufruf eines Unterprogrammes, wenn ZERO gleich 1 siehe hier siehe hier siehe hier
CCF Complement CARRY Flag Negieren des CARRY-Flags siehe hier  
CMP Compare Bitweise Vergleich von 8-Bit Werten mit A siehe hier   siehe hier
CPD Compare And Decrement Vergleichen und um 1 vermindern  
CPDR Compare Decrement And Repeat Vergleichen und um 1 vermindern und wiederholen, bis BC=0  
CPI Compare And Increment Vergleichen und um 1 erhöhen  
CPIR Compare Increment And Repeat Vergleichen und um 1 erhöhen bis BC=0  
CPL Complement Achtung: Es wird die Negation gebildet siehe hier
DAA Decimale Adjust Accumulator BCD-Korrektur des Akkumulators nach arithmetischen Operationen siehe hier
DEC Decrement Verringern um genau eins siehe hier siehe hier
DI Disable Interrupt Interrupt sperren siehe hier  
DJNZ Decrement And Jump Relative On Not ZERO verminder B um 1 und springe relativ siehe hier siehe hier
EI Enable Interrupt Interrupt freigeben siehe hier  
EX  Exchange Registerpaar mit Alternativregisterpaar tauschen siehe hier   siehe hier
EXX Extended Exchange Registersatz mit Alternativregistersatz tauschen siehe hier   siehe hier
HALT HALT HALT siehe hier  
IM0 Interrupt-Mode 0 nur Interrptbetriebsart 0 möglich (NMI wird weiterhin angenommen) siehe hier   siehe hier
IM1 Interrupt-Mode 1 Interrptbetriebsart 0 und 1 möglich (NMI wird weiterhin angenommen) siehe hier   siehe hier
IM2 Interrupt-Mode 2 Interrptbetriebsart  1 und 2 möglich (NMI wird weiterhin angenommen) siehe hier   siehe hier
IN Input Extern Device Bytebreites Einlesen von externem Gerät (PIO, SIO, CTC, DMA)  
INC Increment Erhöhen des Zieles um eins siehe hier
IND Intput Extern Device And Decrement der über C andressierte Gerätekanal wird eingelesen und in die durch HL adressierte Speicherzelle abgelegt, B wird um eins erniedrigt, HL um eins erniedrigt  
INDR Intput Extern Device Decrement And Repeat der über C andressierte Gerätekanal wird eingelesen und in die durch HL adressierte Speicherzelle abgelegt, B wird um eins erniedrigt, HL um eins erniedrigt und solange fort gefahren, bis B=0  
INF Intput Extern Device in F Inhalt des externen Geräts mit 8 Bit Breite ins FLAG-Register lesen  
INI Intput Extern Device And Increment  der über C andressierte Gerätekanal wird eingelesen und in die durch HL adressierte Speicherzelle abgelegt, B wird um eins erniedrigt, HL um eins erhöht  
INIR Intput Extern Device Increment And Repeat der über C andressierte Gerätekanal wird eingelesen und in die durch HL adressierte Speicherzelle abgelegt, B wird um eins erniedrigt, HL um eins erhöht und solange fortgefahren, bis B=0  
JMP Jump unbedingter absoluter Sprung zum Ziel siehe hier  
JPC Jump On CARRY bedingter absoluter Sprung zum Ziel, wenn CARRY gesetzt siehe hier  
JPM Jump M unbedingter absoluter Sprung Programmstelle , welche durch HL adressiert wird (L - niederwertiger Teil der Zieladresse, H - höherwertiger Teil der Zieladresse) siehe hier  
JPNC Jump On Not CARRY bedingter absoluter Sprung zum Ziel, wenn CARRY nicht gesetzt siehe hier  
JPNZ Jump On Not ZERO bedingter absoluter Sprung zum Ziel, wenn ZERO nicht gesetzt siehe hier  
JPP Jump On Parity bedingter absoluter Sprung zum Ziel, wenn PARITY gesetzt siehe hier  
JPPE Jump On Parity Even bedingter absoluter Sprung zum Ziel, wenn EVEN gesetzt (Anzahl 1 gerade) siehe hier  
JPPO Jump On Parity Odd bedingter absoluter Sprung zum Ziel, wenn EVEN nicht gesetzt (Anzahl 1 ungerade) siehe hier  
JPZ Jump On ZERO bedingter absoluter Sprung zum Ziel, wenn ZERO gesetzt siehe hier  
JRC Jump Relative On CARRY relativer Sprung zum Ziel, wenn CARRY gesetzt siehe hier  
JR Jump Relative unbedingter relativer Sprung zum Ziel, siehe hier  
JRNC Jump Relative On Not CARRY relativer Sprung zum Ziel, wenn CARRY nicht gesetzt siehe hier  
JRNZ Jump Relative On Not ZERO relativer Sprung zum Ziel, wenn ZERO nicht gesetzt siehe hier  
JRZ Jump Relative On ZERO relativer Sprung zum Ziel, wenn ZERO gesetzt siehe hier  
LD Load Lade 8- oder 16-Bit-Register siehe hier  
LDD Load And Decrement Lade die die durch HL adressierte Speicherzelle mit dem Inhalt der durch DE adressierten Speicherzelle, erniedrige HL sowie DE um eins   siehe hier
LDDR Loa Decrement And Repeat Lade die die durch HL adressierte Speicherzelle mit dem Inhalt der durch DE adressierten Speicherzelle, erniedrige HL sowie DE um eins, vermindere BC um eins,  wiederhole bis BC=0   siehe hier
LDI Load  And Increment Lade die die durch HL adressierte Speicherzelle mit dem Inhalt der durch DE adressierten Speicherzelle, erhöhe HL sowie DE um eins   siehe hier
LDIR Load  Increment And Repeat Lade die die durch HL adressierte Speicherzelle mit dem Inhalt der durch DE adressierten Speicherzelle, erhöhe HL sowie DE um eins, vermindere BC um eins,  wiederhole bis BC=0   siehe hier
NEG Negation Achtung: Es wird das Zweikomplement gebildet siehe hier
NOP No Operation keine Operation der CPU (Füllbefehl) Refresh wird aufrecht erhalten, Zeit zur Befehlsabarbeitung wird benötigt  
OR Logical OR Bitweise OR-Logik von 8-Bit Werten sowie A (Zielbit gleich 1, wenn mindestens eines der beteiligten Bits gleich 1) siehe hier
OTDR Output Extern Device Decrement And Repeat Lade die die durch C adressierte Geräteadresse mit dem Inhalt des Registers A   siehe hier
OTIR Output Extern Device Increment And Repeat auf den über C andressierte Gerätekanal wird der  durch HL adressierte Speicherinhalt ausgegeben, B wird um eins erniedrigt, HL um eins erhöht und solange fort gefahren, bis B=0   siehe hier
OUT Output Extern Device Ausgabe eine Datenmusters aus 8-Bit-Datenquelle auf externes Gerät (PIO, SIO, CTC, DMA) mit C als Register mit Geräteadresse  
OUTD Output Extern Device Decrement Ausgabe eine Datenmusters aus 8-Bit-Datenquelle auf externes Gerät (PIO, SIO, CTC, DMA) mit C als Register mit Geräteadresse - anschließendes Verringern von C   siehe hier
OUTI Output Extern Device Increment Ausgabe eine Datenmusters aus 8-Bit-Datenquelle auf externes Gerät (PIO, SIO, CTC, DMA) mit C als Register mit Geräteadresse - anschließendes Erhöhen von C   siehe hier
POP Pop gruppenweises Zurückladen der Registerinhalte von den durch den Stackpointer adressierten RAM-Zellen  
PUSH Push gruppenweises Schreiben der Registerinhalte in die durch den Stackpointer adressierten RAM-Zellen  
RES Reset Bit Setzen des Zielbits auf 0  
RET Return unbedingte Rückkehr aus Unterprogramm (Rückkehradresse vom Stack geholt, SP um zwei vermindert) siehe hier siehe hier
RC Return On CARRY Rückkehr aus Unterprogramm, wenn CARRY-Bit  gesetzt, Aktualisierung des PC via SP - SP um zwei vermindert siehe hier siehe hier
RM Return On Sign (Mathematical) Rückkehr aus Unterprogramm, wenn SIGN-Bit  gesetzt (die letzte Opertion war eine logische oder arithmetische), Aktualisierung des PC via SP - SP um zwei vermindert siehe hier siehe hier
RNC Return On Not CARRY Rückkehr aus Unterprogramm, wenn CARRY-Bit  nicht gesetzt, Aktualisierung des PC via SP - SP um zwei vermindert siehe hier siehe hier
RNZ Return On Not ZERO Rückkehr aus Unterprogramm, wenn ZERO-Bit nicht gesetzt, Aktualisierung des PC via SP - SP um zwei vermindert siehe hier siehe hier
RP Return On Parity Rückkehr aus Unterprogramm, wenn PARITY-Bit gesetzt, Aktualisierung des PC via SP - SP um zwei vermindert siehe hier siehe hier
RPE Return On Not Parity Even Rückkehr aus Unterprogramm, wenn Parität der letzten arithmetischen oder logischen Operation gerade, Aktualisierung des PC via SP - SP um zwei vermindert siehe hier siehe hier
RPO Return On Not Parity Odd Rückkehr aus Unterprogramm, wenn Parität der letzten arithmetischen oder logischen Operation ungerade, Aktualisierung des PC via SP - SP um zwei vermindert siehe hier siehe hier
RZ Return On ZERO Rückkehr aus Unterprogramm, wenn ZERO-Bit gesetzt, Aktualisierung des PC via SP siehe hier siehe hier
RETI Return From Interrupt Rückkehr aus Interruptservice-Routine, Aktualisierung des PC via SP siehe hier siehe hier
RETN Return From Non Mascable Interrupt Rückkehr aus NMI-Interruptservice-Routine, Aktualisierung des PC via SP siehe hier siehe hier
RL Rotation Left Bitweise Linksrotation durch das Ziel-Byte siehe hier siehe hier
RLA Rotation Left Arithmetical Bitweise Rotation des Ziel-Bytes um eine Stelle nach links siehe hier siehe hier
RLC Rotation Left Through CARRY Bitweise Rotation des Ziel-Bytes um eine Stelle nach links durch das CARRY-Bit siehe hier siehe hier
RLD Rotation Left Accumulator And M siehe hier siehe hier
RR Rotation Right siehe hier siehe hier
RRA Rotation Right Arithmetical siehe hier siehe hier
RRC Rotation Right Through CARRY siehe hier siehe hier
RRCA Rotation Right  CARRY Accumulator siehe hier siehe hier
RRD Rotation Right Accumulator And M siehe hier siehe hier
RST Restart Aufruf einer Kurzrufadresse  
SBC Subtraction Through CARRY siehe hier
SCF Set CARRY Flag CARRY-Bit wird auf "1" gesetzt siehe hier
SET Set Bit Ziel-Bit wird auf "1" gesetzt  
SLA Shift Left Arithmetical siehe hier siehe hier
SRA Shift Right Arithmetical siehe hier siehe hier
SRL Shift Right Logical siehe hier siehe hier
SUB Subtraction Subtrahiert 8-Bit Werte von A siehe hier
XOR Exclusive OR Bitweise XOR-Logik von 8-Bit Werten sowie A (Zielbit gleich 1, wenn bei den beteiligten Bits gleich) siehe hier

Alphabetische Befehlsübersicht


1. Ladebefehle (Transportbefehle) history menue scroll up

LD steht für LOAD - lade Ziel mit Inhalt von Quelle, wobei immer in der reihenfolge verfahren wird: Lade Ziel mit Quelle - dies gilt auch dann, wenn einer der beteiligten Adressaten 16 Bit breit sein sollte.

Transport von Daten erfolgt immer von Quelle zum Ziel 
r ist ein 8-Bit-Register, d ist eine relative Verschiebung, n ist ein Absolutwert und nn ist eine 16-Bit Adresse 
Technische Beschreibung der Ladegruppe
Ziel B C D E H L M A n
LD B, 40 41 42 43 44 45 46 47 06 n
LD C, 48 49 4A 4B 4C 4D 4E 4F 0E n
LD D, 50 51 52 53 54 55 56 57 16 n
LD E, 58 59 5A 5B 5C 5D 5E 5F 1E n
LD H, 60 61 62 63 64 65 66 67 26 n
LD L, 68 69 6A 6B 6C 6D 6E 6F 2E n
LD M, 70 71 72 73 74 75 76 77 36 n
LD A, 78 79 7A 7B 7C 7D 7E 7F 3E n
LD (IX+d), DD 70 d DD 71 d DD 72 d DD 73 d DD 74 d DD 75 d   DD 77 d DD 36 d n
LD (IY+d),  FD 70 d FD 71 d FD 72 d FD 73 d FD 74 d FD 75 d   FD 77 d FD 36 d n
LD I,               ED 47  
LD R,               ED 4F  

Übersicht 8-Bit Ladelbefehle
Ziel BC DE HL SP IX IY (nn)
LD x, nn 01 nn 11 nn 21 nn 31 nn DD 21 nn FD 21 nn  
LD x, (nn) ED 4B nn ED 5B nn 2A nn ED 78 nn DD 2A nn FD 2A nn  
LD (nn), x ED 43 nn ED 53 nn 22 nn ED A3 nn DD 22 nn FD 22 nn  
LD (SP), x     F9   DD F9 FD F9 ED 7B nn
LD A, x 32 nn       DD 77 d FD 77 d 3A nn
LD B, x         DD 46 d FD 46 d  
LD C, x         DD 4E d FD 4E d  
LD D, x         DD 56 d FD 56 d  
LD E, x         DD 5E d FD 5E d  
LD H, x         DD 66 d FD 66 d  
LD L, x         DD 6E d FD 6E d  
LD BC, x             ED 48 nn
LD DE, x             ED 5B nn
LD HL, x             2A nn

Übersicht 16-Bit Ladelbefehle
Befehl LDD LDDR LDI LDIR
  ED AB ED B8 ED A0 ED B0

Spezielle Ladelbefehle
Blocktransferbefehle - können effektiver vom DMA ausgeführt werden, sofern vorhanden
Lade Dercrementiere (bzw. Incrementiere) und Wiederhole 
Daten werden solange vom durch (HL) indizierten Speicherplatz auf den durch (DE) indizierten gebracht, bis BC 0 enthält
wenn HL = 0200H, DE = 0600H sowie BC = 0008H sei, dann wird der Inhalt von 0200H bis 0207H auf 0600H bis 0607H kopiert


2. Austauschbefehle history menue scroll up

EX steht für EXCHANGE - Austauschen

Austauschbefehl Code
EX DE, HL EB
EX AF 08
EXX D9
EX (SP), HL E3
LD SP, HL F9
EX (SP), IX DD E3
EX (SP), IY FD E3

Austauschbefehle


3. Stapelbefehle history menue scroll up
der Inhalt eines  Doppelregisters wird in den Kellerspeicher (Stapelspeicher - Stack) gebracht oder von dort geholt
der höherwertige Teil des Registers kommt auf die Zelle SP-1, der niederwertige auf SP-2 - beim Wiederherstellen umgekehrt
nach der Ausführung ist der Stackpointer um zwei erniedrigt
Stapelbefehle existieren nur für die Hauptregister, um den Alternativregistersatz auf dem Stapel zu verwalten, muss mit dem EXCHANGE-Befehl umgeschalten werden
die FLAGs werden nicht beeinflusst, erhalten jedoch mit POP AF den Inhalt für F, welcher auf dem Stapel abgelegt war
Mnemonic-Code Befehl
PUSH AF F5
PUSH BC C5
PUSH DE D5
PUSH HL E5
PUSH IX DD E5
PUSH IY FD E5
POP AF F1
POP BC C1
POP DE D1
POP HL E1
POP IX DD E1
POP IY FD E1

Übersicht Stapelbefehle


4. CALL- und JUMP-Befehle sowie Rückkehr aus Unterprgrammen history menue scroll up
Mnemonic-Code unbedingt C NC Z NZ PE PO M P
JP C3 nn DA nn D2 nn CA nn C2 nn EA nn E2 nn FA nn F2 nn
CALL CD nn DC nn D4 nn CC nn C4 nn EC nn E4 nn FC nn F4 nn
RET C9 D8 D0 C8 C0 EB E0 F8 F0
JR 18 e 38 e 30 e 28 e 20 e        
DJNZ         10 e        
JMP (HL) E9                

Übersicht CALL-Befehle

Jump relative

DJNZ Decrement B and Jump relative on not ZERO


5. RESTART-Befehle history menue scroll up
RST 00H RST 08H RST 10H RST 18H RST 20H RST 28H RST 30H RST 38H
C7 CF D7 DF E7 EF F7 FF

Übersicht RESTART-Befehle


6. Arithmetik-Befehle history menue scroll up
DAA CCF SCF CPL NEG
27 3F 37 2F ED 44

Übersicht der speziellen arithmetischen-Befehle

DAA Decimal Adjust Accumulator

CCF
SCF
CPL Complement
NEG Negation (führt aber das Zweierkomplement aus)

Übersicht 16-Bit Arithmetikbefehle-Befehle
  B C D E H L M A n BC DE HL SP IX IY (IX+d) (IY+d)
ADD 80 81 82 83 84 85 86 87 C6 n             DD 86 d FD 86 d
ADC 88 89 8A 8B 8C 8D 8E 8F CE n             DD 8E d FD 8E d
ADD HL,nn                   09 19 29 39        
ADD IX,nn                   DD 09 DD 19 DD 29 DD 39        
ADD IY,nn                   FD 09 FD 19 FD 29 FD 39        
ADC HL,nn                   ED 4A ED 5A ED 6A ED 7A        
SUB 90 91 92 93 94 95 96 97 D6 n             DD 96 d FD 96 d
SBC 98 99 9A 9B 9C 9D 9E 9F DE n             DD 9E d FD 9E d
SBC HL                   ED 42 ED 52 ED 62 ED 72        
INC 04 0C 14 1C 24 2C 34 3C   03 13 23 33 DD 23 FD 23 DD 34 d FD 34 d
DEC 05 0D 15 1D 25 2D 35 3D   0B 1B 2B 3B DD 2B DD 2B DD 35 d FD 35 d

Übersicht 8-Bit Arithmetikbefehle-Befehle

Register A ist in jedem Falle einer der beteiligten Operanden und Ziel der Operation

FLAG-Wirkung beachten


7. Logische Befehle history menue scroll up

 
  B C D E H L M A n
AND A0 A1 A2 A3 A4 A5 A6 A7 E6 n
XOR A8 A9 AA AB AC AD AE AF EE n
OR B0 B1 B2 B3 B4 B5 B6 B7 F6 n
CMP B8 B9 BA BB BC BD BE BF FE n

Übersicht RESTART-Befehle

Register A ist in jedem Falle einer der beteiligten Operanden und Ziel der Operation

FLAG-Wirkung beachten


8. Bittest-, SET- und RESET-Befehle history menue scroll up
  B C D E H L M A
BIT 0 CB 40 CB 41 CB 42 CB 43 CB 44 CB 45 CB 46 CB 47
BIT 1 CB 48 CB 49 CB 4A CB 4B CB 4C CB 4D CB 4E CB 4F
BIT 2 CB 50 CB 51 CB 52 CB 53 CB 54 CB 55 CB 56 CB 57
BIT 3 CB 58 CB 59 CB 5A CB 5B CB 5C CB 5D CB 5E CB 5F
BIT 4 CB 60 CB 61 CB 62 CB 63 CB 64 CB 65 CB 66 CB 67
BIT 5 CB 68 CB 69 CB 6A CB 6B CB 6C CB 6D CB 6E CB 6F
BIT 6 CB 70 CB 71 CB 72 CB 73 CB 74 CB 75 CB 76 CB 77
BIT 7 CB 78 CB 79 CB 7A CB 7B CB 7C CB 7D CB 7E CB 7F

Übersicht Bittest-Befehle
  B C D E H L M A
SET 0 CB C0 CB C1 CB C2 CB C3 CB C4 CB C5 CB C6 CB C7
SET 1 CB C8 CB C9 CB CA CB CB CB CC CB CD CB CE CB CF
SET 2 CB D0 CB D1 CB D2 CB D3 CB D4 CB D5 CB D6 CB D7
SET 3 CB D8 CB D9 CB DA CB DB CB DC CB DD CB DE CB DF
SET 4 CB E0 CB E1 CB E2 CB E3 CB E4 CB E5 CB E6 CB E7
SET 5 CB E8 CB E9 CB EA CB EB CB EC CB ED CB EE CB EF
SET 6 CB F0 CB F1 CB F2 CB F3 CB F4 CB F5 CB F6 CB F7
SET 7 CB F8 CB F9 CB FA CB FB CB FC CB FD CB FE CB FF

Übersicht Bitsetz-Befehle
  B C D E H L M A
RES 0 CB 80 CB 81 CB 82 CB 83 CB 84 CB 85 CB 86 CB 87
RES 1 CB 88 CB 89 CB 8A CB 8B CB 8C CB 8D CB 8E CB 8F
RES 2 CB 90 CB 91 CB 92 CB 93 CB 94 CB 95 CB 96 CB D7
RES 3 CB 98 CB 99 CB 9A CB 9B CB 9C CB 9D CB 9E CB 9F
RES 4 CB A0 CB A1 CB A2 CB A3 CB A4 CB A5 CB A6 CB A7
RES 5 CB A8 CB A9 CB AA CB AB CB AC CB AD CB AE CB AF
RES 6 CB B0 CB B1 CB B2 CB B3 CB B4 CB B5 CB B6 CB B7
RES 7 CB B8 CB B9 CB BA CB BB CB BC CB BD CB BE CB BF

Übersicht Bit-Rücksetz-Befehle


9. Schiebe- und Rotations-Befehle history menue scroll up
  B C D E H L M A (IX+d) (IY+d)
RLC CB 00 CB 01 CB 02 CB 03 CB 04 CB 05 CB 06 CB 07 DD CB d 06 FD CB d 06
RRC CB 08 CB 09 CB 0A CB 0B CB 0C CB 0D CB 0E CB 0F DD CB d 0E FD CB d 0E
RL CB 10 CB 11 CB 12 CB 13 CB 14 CB 15 CB 16 CB 17 DD CB d 16 FD CB d 16
RR CB 18 CB 19 CB 1A CB 1B CB 1C CB 1D CB 1E CB 1F DD CB d 1E FD CB d 1E
SLA CB 20 CB 21 CB 22 CB 23 CB 24 CB 25 CB 26 CB 27    
SRA CB 28 CB 29 CB 2A CB 2B CB 2C CB 2D CB 2E CB 2F DD CB d 2E FD CB d 2E
SLL CB 38 CB 39 CB 3A CB 3B CB 3C CB 3D CB 3E CB 3F DD CB d 26 FD CB d 26
RRA               1F    
RLCA               07    
RLD               ED 6F    
RRCA               0F    
RRD               ED 67    

Übersicht Schiebe- und Rotations--Befehle


10. Interruptsteuerungsbefehle history menue scroll up
DI EI IM0 IM1 IM2 RETI RETN
F3 FB ED 46 ED 56 ED 5E ED 40 ED 45

Übersicht der Interruptsteuerungs-Befehle


11. CPU-Steuerungsbefehle history menue scroll up
NOP HALT
00 76

Übersicht RESTART-Befehle


12. Ein- und Ausgabebefehle history menue scroll up
  B C D E H L F A n
IN ED 40 ED 48 Ed 50 ED 58 ED 60 ED 68 ED70 ED 78 DB n
OUT ED 41 ED 49 ED 51 ED 59 ED 61 ED 69   ED 79 D3 n

Übersicht IN/OUT-Befehle


13. Blockbefehle history menue scroll up
  Befehls-Code
LDI ED A0
LDIR ED B0
LDD ED A8
LDDR ED B8
CPI ED A1
CPIR ED B1
CPD ED A9
CPDR ED B9
INI ED A2
INIR ED B2
IND ED AA
INDR ED BA
OUTI ED A3
OTIR ED B3
OUTD ED AB
OTDR ED BB

Übersicht der Blockbefehle-Befehle

Blockladebefehle wirken auf alle 8-Bit Register jeweils gruppenweise (ausgenommen Akkumulator)

Flag-Wirkung finden Sie hier

Der LC-80 Simulator

POLYCOMPUTER

Z80-CPU

Mnemonic-Code-Notation

höhere Programmierwerkzeuge

... und so funktioniert ein Computer

 

die beliebte alphabetisch sortierte Schnell-Liste

die beliebte numerisch sortierte Schnell-Liste

Allgemeine FLAG-Wirkung

FLAG-Wirkung auf OP-Code-Gruppen

Alphabetisch sortierte Dokumentation

FLAG Teile I

FLAG Teile 2

Allgemeine Funktionssymbolik

Aktuelles sowie weiterentwickeltes Betriebssystem

LC-80 Interruptsystem

Blockschaltbild eines Einchiprechners

Assembler-Programmierung

   



zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost im Mai 2004

... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-)

„Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“

Diddi Hallervorden, dt. Komiker und Kabarettist