Z80-CPU (in der DDR U880D) und weiter Äquivalente |
![]() |
![]() |
Letztmalig dran rumgefummelt: 14.03.25 09:55:53 |
![]() |
Implementiert in ein 40-poliges DIL-Gehäuse präsentiert sich die Z80-CPU mit einem 8 Bit breitem Daten-BUS als Aritmetic-Logical Unit mit 158 Basisbefehlen (insgesamt 796 Befehle) mit 3 leitungsfähigen Interruptmodi und einem linear adressierbarem Speichervolumen von 64 KByte (das entspricht 65536 Adressen). Die CPU verfügt über nur eine 5 Volt-Versorgungsspannung, einen Einphasentakt. Alle Ausgänge sind TTL-kompatibel und können eine Standardlast treiben. Bedingt durch die statische Arbeitsweise dieser CPU ist das Analysieren dieses Prozessors mit minimaler Frequenz (Extremfall 0 - das entspricht durch Hand getaktet) möglich. | |||||||
![]() |
|
|||||||
![]() |
1. Blockschaltbild und technische Daten 2. Registersatz und FLAG-Wirkungen 3. Grundlagen der Befehlsabarbeitung 4. Befehlssystem des Z80 oder auch U880D ;-) 5. Schaltpläne und Startprogramm-Listings 6. Vergleichslisten 7. Z80-Fan-Club 8. Verwandte Themen |
|||||||
![]() |
Warum fiel die Wahl für die Unterrichtsarbeit ausgerechnet auf den Z80 bzw. sein System? Dieser Prozessor sowie sein System vereinigt eine Reihe positiver Merkmale für den Rechentechnik-Einsteiger:
|
1. Blockschaltbild und technische Daten der Z80-CPU |
![]() |
![]() |
![]() |
![]() |
Der Z80-Prozessor, seine Peripherie, wohl aber auch seine Weiterentwicklungen ganz aktuell, haben ihn zu einem der langlebigsten Fossilien der Prozessortechnik überhaupt mutieren lassen. Er ist bildet im Gegensatz zu Controllern ein sagenhaftes Einsatzspektrum und liegt von der Leistungsfähigkeit weit über diesen. Und nicht zu vergessen: jeder klassische IT-Ingieur kennt und liebt das letzte Stück Elektronik, für welches noch fehlerfreie Betriebssysteme verfügbar waren. | ||||
![]() |
|
||||
![]() |
|||||
![]() |
|
||||
![]() |
Funktionsbeschreibung | ||||
![]() |
Pinbelegung | ||||
![]() |
Technische Daten | ||||
![]() |
Taktdiagramme | ||||
![]() |
Kurzruf- und Interruptfunktion | ||||
![]() |
Schaltpläne | ||||
![]() |
Stack-Funktion bei Unterprogramm-Aufruf sowie PUSH und POP-Befehlen | ||||
![]() |
Interrupt-Funktion der Z80-CPU |
2. Registersatz der Z80 CPU (oder CPU U880) sowie die FLAG-wirkung der Z80-CPU-Befehle |
![]() |
![]() |
![]() |
![]() |
Die Register, ihre Anzahl, ihre Bit-Breite, ihre Flag-Beeinflussung, ihre Möglichkeit, als Akkumulator agieren zu können - das macht neben der Taktfrequenz im Wesentlichen die Leistungsfähigkeit einer x-beliebigen CPU aus. |
![]() |
|
![]() |
in ihrer Funktion sind die einzelnen8-Bit-Register durchaus nicht gleichrangig - das sieht man dann auch aus den entsprechenden Befehlslisten |
![]() |
unbestritten ist der Akkumulator A (das wichtigste Register!) jeweils einer der Operanden, häufig jedoch auch Ziel arithmetischer und logischer Operationen |
![]() |
Register B wird für einige Befehlen automatisch als Abwärtszähler genutzt (Jump relative on ...) |
![]() |
Registerpaar DE ist die Datensenke für mehrfache Operationen auf dem Speicher oder auf Ports von Peripherieelementen |
![]() |
Registerpaar HL ist Ziel für Datenverschiebungen |
![]() |
Registerpaar HL und DE sind untereinander leicht austauschbar (EX DE,HL), wobei HL mit Sicherheit das wichtigere Registerpaar ist (Kurzbezeichnung oft M) |
![]() |
beachten Sie immer, dass sie zwischen Haupt- und Alternativregistersätzen umschalten können |
![]() |
![]() |
Übersicht 8-Bit-Register - Detail-Darstellung |
![]() |
Übersicht 16-Bit-Register - Detail-Darstellung |
![]() |
Übersicht FLAG-Register - Detail-Darstellung sowie Wirkungsbedingungen |
![]() |
Haupt- und Alternativ-Registersatz können mit einem Befehl umgeschalten werden |
![]() |
alle 8-Bit Ergebnisse arithmetischer Operationen stehen grundsätzlich im Akkumulator - dies trifft auch für Daten mit Quelle Peripherie zu |
![]() |
zwei 8-Bit-Register können funktional zu einem 16-Bit-Register zusammengefasst werden |
![]() |
Flags (Flag-Register, Condition Code Register) Direkt an die ALU angeschlossen sind einige (getrennte) Flipflops bzw. ein ganzes Register, in denen sogenannte Zustandsbits (auch: Kennzeichenbits) gespeichert werden. Sie sind für viele Aufgaben der
Programmabarbeitung von großer Bedeutung. Beispielsweise können mit ihrer Hilfe bedingte Sprünge (Verzweigungen) programmiert werden, die vom logischen Zustand der o. g. Flipflops (Bedingungs-Flipflops, Flag-Flipflops) bzw. des Registers (Bedingungsregister,
Flag-Register) abhängen. |
![]() |
Programmzähler (PC Programm counter) Der Programmzähler (auch Befehlszähler genannt) sorgt dafür, dass der Mikroprozessor stets weiß, unter welcher Adresse der nächste zu holende und zu verarbeitende Befehl zu finden ist. Zu Beginn einer Programmabarbeitung wird er in der Regel nullgestellt und während der Abarbeitung jedes Befehlsbytes um Eins erhöht, da das Programm normalerweise in aufeinanderfolgenden Speicheradressen enthalten ist. Eine Abweichung vom üblichen inkrementellen Ablauf tritt bei Sprungbefehlen auf. Hierbei wird der Programmzähler mit derjenigen Speicheradresse geladen, zu der gesprungen werden soll. Ein 16-bit-Programmzähler kann 216 = 65 536 Speicherplätze adressieren. |
![]() |
Stack (Stapelspeicher, Kellerspeicher) Bei Unterprogrammen (Subroutinen) oder bei der Ausführung von Programmunterbrechungen (Interrupt) führt das Programm Sprünge zu Adressen aus, die sich u. U. weit entfernt vom jeweiligen Programmzählerinhalt
befinden.
Unterprogramme kommen geschachtelt vor, d. h., mehrere Unterprogramme können ineinander eingelagert sein. In diesem Fall müssen zeitlich nacheinander mehrere Rückkehradressen zwischengespeichert werden. In jedem Register des Stack bzw. in jeder Speicherzelle des vom Stapelzeiger adressierten RAM-Bereiches lässt sich eine Rückkehradresse speichern. Deshalb bestimmt die Anzahl der Register im Stack bzw. die Bitanzahl des Stapelzeigers die Tiefe der Verschachtelung von Unterprogrammen (Bild unten). Arbeitsweise des Adressenspeichers (Stapelspeicher, Stack) bei 2-Byte-Adressen Die Rückkehradressen werden bei mehrfach verschachtelten Unterprogrammen in umgekehrter Reihenfolge benötigt als beim Einspeichern. Deshalb ist der Adressenstapelspeicher als LIFO-Stack (last in first out) aufgebaut. Arbeitsweise des Adressenspeichers (Stapelspeicher, Stack) bei 1-Byte-Adressen |
![]() |
Speicherorganisation Die Speicher des Mikrorechners sind wortorganisiert. Jeder Speicherplatz enthält ein Wort und wird durch seine Adresse identifiziert (siehe Abschnitt
Speicher). |
![]() |
Steuerschaltung Die Steuerschaltung sorgt für einen exakten zeitlichen Ablauf aller Operationen und für die Ausführung des jeweiligen Befehls. Nach der Befehlsdekodierung werden die Verbindungen innerhalb der CPU so gesteuert,
dass für jede
Befehlsausführung eine spezielle Hardware-Struktur wirksam ist. Vereinfacht kann man sich dies so vorstellen, als würde nach jedem neuen dekodierten Befehl innerhalb der CPU eine Verdrahtungsänderung vorgenommen. |
3. Grundlagen der Befehlsabarbeitung |
![]() |
![]() |
![]() |
![]() |
Basis der Befehlsabarbeitung aller Mikrorechner ist eine stabile Taktung. Das war in den Gründerjahren der Radio-Technik (... Computer führen die Technologie des Radios auf höherer Ebene fort) ein echtes Problem. Nicht das die Zusammenhänge unbekannt gewesen wären - seit Heinrich Herz wissen wir, wie wie ein Schwingkreis berechnet werden kann, aber in den Anfangsjahren der Radiotechnologie war die Änderung der Ausgangsfrequenz (... also das, was Du heute mit der Senderauswahl - natürlich gerne auch automatisch tust) ein gigantisches Problem. Da waren keine Sendernamen in der Skala des Radios. da gab es einen kleinen Kasten mit "Schwingquarzen" sowie dem Namen des Senders, unter welchem diese erreichbar waren. |
![]() |
Arbeitszyklen des Prozessors - siehe auch hier ... ... oder ganz genau auf Z80 - hier: Z80-CPU-Taktdiagramme - so sehen dir Signale real aus ;-)
Für das Zusammenschalten mit äußeren Geräten, für Prüfzwecke usw. sind bei Mikroprozessoren Steuersignale nach außen geführt, die signalisieren, in welchem Maschinenzyklus und in welchem T-Zustand sich der Mikroprozessor gerade befindet. |
![]() |
Abarbeitung eines Befehls
Befehlsaufbau der Z80 CPU |
![]() |
Typische Befehle umfassen 1 ... 3 (einige 4!) Bytes. Aufeinanderfolgende zu einem Befehl gehörige Bytes werden in aufeinanderfolgenden Adressen gespeichert. Die CPU erhält einen 3-byte-Befehl durch drei Holzyklen. Das erste aus dem Programmspeicher geholte Byte wird im Befehlsregister der CPU gespeichert. Es enthält den Operationskode, d. h. die kodierte Steueranweisung für die ALU. Die folgenden 1-3 Bytes gelangen meist in andere Register der CPU. |
![]() |
Folgende hauptsächlichen Aktivitäten laufen in einigen ausgewählten Maschinenzyklen des Mikroprozessors U 880 ab:
|
4. Befehlslisten der Z80-CPU - beachten Sie die Gruppierungen - es handelt sich in jeder Liste um 796 Befehle - die einzelnen Listen unterscheiden sich nur in ihrer Sortierung |
![]() |
![]() |
![]() |
![]() |
Der Befehlssatz des Z80-Prozessors ist für sein Alter schon recht umfangreich ohne das man sofort verkennen kann, dass ein Akkumulatorregister extrem wenig ist. In der Konsequenz steigt somit die Anzahl der notwendigen Daten-Umschaufel-Operationen. Trotzdem: für seine Zeit - und wir sprechen von 1968 (da lag das Baby in den Entwicklungslabors bei Zilog) war das schon ein Renner. | |||||||||
![]() |
Original-Befehlsliste aus dem LC-80 - gescannt (also Original und damit fehlerfrei) |
|||||||||
![]() |
FAQ - The Most Wanted Requested Commands ;-) | |||||||||
![]() |
Tallarische Befehlsliste und deren Aktualisierung sowie der Schnellversteh-Blockaufbau für die Hosentasche - leider sehr alt und gebraucht ;-) - leider nicht ganz vollständig (kanns'de aber vergessen - sind seltene Befehle) | |||||||||
![]() |
Word-Dokument der alphabetischen Liste des Z80 Befehlssatzes |
|||||||||
![]() |
WORD-Dokument der Alphabetischen Liste - Achtung - kleine Fehler in selten benötigten Befehlen - laufend aktualisiert! | |||||||||
![]() |
|
|||||||||
![]() |
WORD-Dokument der numerischen -Liste - Achtung - kleine Fehler in selten benötigten Befehlen - laufend aktualisiert! |
|||||||||
![]() |
5. Schaltpläne und Startprogramme |
![]() |
![]() |
![]() |
![]() |
Hier nun wird sich schon in nächster Zeit sicherlich einiges tun, denn wir haben den Prozessor für ein halbes Jahr lang auf unsere Arbeitsliste gesetzt und jeder Schüler ist verpflichtet, etwas sinnvolles dazu bei zu tragen. Also wird sich auch der Pool der möglichen Schaltungsapplikationen vermutlich schnell füllen ;-) |
![]() |
|
![]() |
Schnelle Datenbus-Richtungslogik |
![]() |
Datenbus-Richtungslogik bei Einsatz eines DMA-Controllers |
6. Äquivalenztypen |
Die Äquivalente unterscheiden sich durch Taktfrequenz und Betriebsstrom teilweise erheblich voneinander. Zu empfehlen sind die CMOS-Typen.
Klasse/Technologie | Bauelemente-Typ | Funktion |
n-Kanal-MOS |
Z80A-CPU | 8-Bit-Mikroprozessor 4 MHz |
n-Kanal-MOS | Z80B-CPU | 8-Bit-Mikroprozessor 2 MHz |
CMOS | Z84C00-06MHz | 8-Bit-Mikroprozessor 6 MHz |
CMOS | Z84C00 | 8-Bit-Mikroprozessor 10 MHz |
8. Verwandte Themen |
![]() |
![]() |
![]() |
|
Was ist alles mit dem Betriebssystem eines Microcomputers verwandt? Antwort: faktisch der gesamte Bereich der Digitalelektronik und sowieso die gesamte Technik der Software-Technologie der Vergangenheit, Gegenwart sowie zumindest der nächsten Zukunft. | ||||||
![]() |
|
![]() zur Hauptseite |
© Samuel-von-Pufendorf-Gymnasium Flöha | © Frank Rost im Oktober 1998 |
... 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 |