Die 68000-Prozessorfamilie zeichnet sich durch eine externe Wortlänge von 16 Bit aus, da der Prozessorchip 16 Datenpins für den Anschluss an den Speicher hat. Innerhalb des Prozessors werden die Daten jedoch in Registern manipuliert, die 32 Bit enthalten. Weitere Modelle dieser Familie sind die 68020-, 68030- und 68040-Prozessoren, die sowohl in großen Chipgehäusen als auch mit 32 Bit externen Datapins erhältlich sind. Dadurch können sie sowohl intern als auch extern mit Datenmengen von 32 Bit umgehen.
Die Registrierstruktur des 68000
Die Registrierstruktur des 68000 umfasst 8 Datenregister und 8 Adressregister, jeweils 32 Bit lang. Die Datenregister dienen als Allzweck-Akkumulatoren und Zähler. Die Struktur sieht wie folgt aus:
Die 68000-Anweisungen verwenden Operanden von drei verschiedenen Längen. Ein 32-Bit-Operand wird als “Long Word” bezeichnet, ein 16-Bit-Operand als “Word” und ein 8-Bit-Operand als “Byte”. Wenn eine Anweisung einen Byte- oder Word-Operanden in einem Register verwendet, befindet sich dieser Operand in den niederwertigen Bit-Positionen des Registers. In den meisten Fällen beeinflussen solche Anweisungen nicht die restlichen höherwertigen Bits des Registers, aber einige Anweisungen erweitern das Vorzeichen eines kürzeren Operanden in die höherwertigen Bits.
Die Adressregister enthalten die Informationen, die zur Bestimmung der Adressen von Speicheroperanden verwendet werden. Diese Informationen können entweder als Long Word oder Word angegeben werden. Wenn die Adresse einer bestimmten Speicherstelle eine Adressregister als Zeiger auf diese Stelle dient. Sowohl Adress- als auch Datenregister können auch als Indexregister verwendet werden. Ein Adressregister, A7, hat die spezielle Funktion, als Prozessor-Stack-Zeiger zu dienen. Die Adressregister und Adressberechnungen verwenden 32 Bits. Bei 68000 werden jedoch nur die niederwertigsten 24 Bits einer Adresse extern verwendet, um auf den Speicher zuzugreifen. Die Prozessoren 68020, 68030 und 68040 verfügen über 32 externe Adressleitungen sowie 32 Datenleitungen.
Adressierung
-
Der Speicher eines 68000-Computers ist in 16-Bit-Wörtern organisiert und byte-adressierbar. Zwei aufeinanderfolgende Wörter können als ein einzelnes 32-Bit Long Word interpretiert werden. Die Speicheradressen sind wie in der obigen Abbildung gezeigt zugewiesen. Ein Wort muss auf einer geraden Grenze ausgerichtet sein (d. h. seine Adresse muss eine gerade Zahl sein). Es wird die Big-Endian-Adressierung verwendet. Das Byte an der Stelle mit der höheren Ordnung eines Wortes hat die gleiche Adresse wie das Wort, während das Byte an der Stelle mit der niedrigeren Ordnung die nächsthöhere Adresse hat.
-
Da der 68000 24-Bit-Adressen generiert, beträgt sein adressierbarer Speicherplatz 224 (16.777.216 oder 16 M) Bytes. Dieser adressierbare Speicherplatz kann als 512 (29) Seiten zu je 32 K (215) Bytes betrachtet werden. Hexadezimale Adressen von 0 bis 7FFF bilden Seite 0, Adressen von 8000 bis FFFF bilden Seite 2 usw. Die letzte Seite besteht aus Adressen von FF8000 bis FFFFFF.
-
Der 68000 hat mehrere Adressierungsarten. Viele der 68000-Anweisungen passen in ein 16-Bit-Wort, aber einige erfordern zusätzliche Worte für zusätzliche Adressierungsinformationen. Das erste Wort der Anweisung ist das OP-Code-Wort, das die auszuführende Operation angibt und einige Adressierungsinformationen liefert. Der Rest der Informationen wird in nachfolgenden Worten angegeben.
Verschiedene Arten der Adressierungsmodi
- Immediate Mode
- Absolute Mode
- Register Mode
- Register Indirect Mode
- Auto-increment Mode
- Auto-decrement Mode
- Basic Index Mode
- Full Index Mode
- Basic Relative Address
- Full Relative Mode
Syntax und Funktion der Adressierungsmodi
Hier ist eine Tabelle mit den verschiedenen Adressierungsmodi und ihrer Funktionsweise:
Die effektive Adresse (EA) steht für die berechnete Adresse, die Operand ist entweder eine Zahl oder durch ein Label repräsentiert, An steht für Address-Register, Rk steht für Address- oder Datenregister und S steht für eine Größenangabe: W für ein sign-extended 16-Bit-Wort und L für ein 32-Bit Long Word.
Zum Beispiel: Die Anweisung “ADD 100(PC,A1),D0” besteht aus 2 Worten. Das OP-Code-Wort gibt an, dass es sich um eine ADD-Anweisung handelt, dass das Zielregister ein Datenregister D0 ist und der Full-Relative-Adressierungsmodus für den Quellenoperanden verwendet wird. Das zweite Wort, auch als Extension Word bezeichnet, gibt an, dass das Register A1 als Indexregister verwendet wird und den Offset-Wert von 100 enthält.
Angenommen, die vorherige Anweisung ist an der Speicherstelle 1000 gespeichert und das Register A1 enthält den Wert 6. Wenn das OP-Code-Wort dieser Anweisung abgerufen und vom Prozessor decodiert wird, zeigt der Programmzähler auf das Extension Word, was bedeutet, dass der Programmzähler den Wert 1002 enthält. Daher ist die effektive Adresse des Quellenoperands wie folgt:
EA = [PC] + [A1] + 100 = 1002 + 6 + 100 = 1108
So, das war’s! Jetzt kennst du die Registrierung und Adressierung der 68000-Familie in der Computerarchitektur. Viel Spaß beim Programmieren!