Mikroprozessoren

Jörg Zschocke

Der Mikroprozessor 6809

Jörg Zschocke

Der Mikroprozessor 6809

Mikroprozessoren

Der Mikroprozessor 6809 von J. Zschocke

Mikrocomputer. Aufbau und Anwendung. Arbeitsbuch zum uP von J. Zschocke

Mikroprozessoren (6502, 6800, 8080, Z 80, 9900) von H. Schumny

Assembler-Programmierung von Mikroprozessoren (8080, 8085, Z80) mit dem ZX-Spectrum von P. Kahlig

Der Mikroprozessor MC 68000 von J. W. Coffron

Vieweg

Jörg Zschocke

Der Mikroprozessor 6809

Herausgegeben von Harald Schumny

Springer Fachmedien Wiesbaden GmbH

Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgend- einer Art verbunden. Der Autor und der Verlag übernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht.

1986

Alle Rechte vorbehalten © Springer Fachmedien Wiesbaden 1986

Ursprünglich erschienen bei Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig 1986.

Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.

> BERNE CONVENTION 100 YEARS

Umschlaggestaltung: Ludwig Markgraf, Wiesbaden

ISBN 978-3-528-04477-0 ISBN 978-3-663-14182-2 (eBook) DOI 10.1007/978-3-663-14182-2

Vorwort

Der MC6809 von Motorola wird von Kennern als „der Größte unter den Kleinen‘ be- zeichnet. Obwohl er unter den 8-Bit-Prozessoren sicher zu den leistungsfähigsten gehört, blieb er relativ unbekannt. Das vorliegende Buch soll ein wenig dazu beitragen, diesen Zu-

stand zu ändern.

Bei der Gestaltung des Textes stand die anwendungsorientierte Information im Mittel- punkt. Dem Leser werden Problembeispiele in Form von Hardware-Entwürfen einschließ- lich‘der notwendigen Software aufgezeigt, die die eigene Problemlösung erleichtern. Eine breite Stoffauswahl und systematischer Aufbau sollen das Buch auch zum Nachschlagen geeignet machen. Vor allem durch die ersten Kapitel ist das Buch zum Selbststudium für den Anfänger geeignet, gerade auch als Einführungslektüre im Hinblick auf den 68000 und den 68020.

An dieser Stelle möchte ich mich ganz herzlich bei den Herren Dipl.-Ing. Safferthal von der Firma Dolch, Dietzenbach und Dipl.-Ing. Havel, Computer Graphics, München für ihre Mitarbeit am Buch bedanken. Ein Dankeschön auch an die Firma Motorola, München, speziell an Herrn Dipl.-Ing. Hilf, für die Bereitstellung von Informationen und Illustra- tionen.

Besondere Anerkennung verdient der Verlag Vieweg für die vertrauensvolle Zusammen- arbeit und die gute Ausstattung des Buches. Ich möchte auch nicht unerwähnt lassen, daß nur durch die vielfältige Unterstützung meiner Frau vor allem was die Schreibarbeit betrifft dieses Buch möglich wurde.

Steinen-Weitenau, im August 1986 Jörg Zschocke

vi

Inhaltsverzeichnis

1 Einführung in die Struktur und Arbeitsweise eines

Mikroprozessorsystems .......2 222222 eeeeeeeeeeneenennnenn 1 1.1 Einführung in die Hardware-Struktur .. 2... 222m oc enneeeeeenennn 1 1.1.1 Grundsätzlicher Systemaufbau ..... 2.222 comme 1 1.1.2 Mikroprozessor „2.2 22mm onen ernennen 6 1.13: Speicher ze... 24a. a RR 7 1.1.4 Ein-/Ausgabebaustein .....: 22.2 cn oeenn nennen een 9

1.2 Einführung in die Programmierung ....:: 22 cnuo nennen 9 1.2.1 Aufbau eines Befehls . 2.2.2: 22. om. nnneer een 9 1.2.2 Bearbeitungeines Befehls ......... 2.2... o euere 12 1.2.3 Ablauf eines Programms .... 22:2. 2 no onen 12

2 Der Mikroprozessor 6809 ........:.::22cceseeeeeeeeee nennen 19 2.1 Mikroprozessorsystem 6809 ....... 222m eneeeeee een een 19 2.1.1 Entwurfsphilosophie ... 2... 22er eeeeeeeeer rennen 19 2.1.2 Organisation eines Standardsystems . .... 2.2: 222. eeenennn 21 2.1.3 Architektur der CPU 6809 .. 2... 2.222 co oneeeenernennenn 24 2.1.4 Adressierung und Befehlsformat beim 6809 ...........2.2..: 30

2.2 Adressierungsarten des6809 ..... 2.2.2 nme eeeeer erento 34 2.2.1 Inherent-Adressierung .. 2... 222mm ereeeeneen ern nenn 36 2.2.2 Register-Adressierung ..... 2.2.22 oHooe er renenerenennnen 36 2.2.3 Immediate-Adressierung ....:. 2.2222 cn enenen rennen 39 2.2.4 Extended-Adressierung ....: 2.222 on or eeeeeernen en 40 2.2.5 Direct-Adressierung und Direct Page Register ....... 2.222020. 40 2.2.6 Branch Relative-Adressierung . . 2.2... 222222 44 2.2.7 Indexed-Adressierung .. 2.2: . 2.222 on euren nenn 53 2.2.8 Program Counter Relative-Adressierung ..... 22-22 eeenen 60 2.2.9 Indirect-Adressierung . 2.222: 22m con 61

2.3 Befehlssatz des6809 .....: 22.2. ononne nern enen 66 2.3.1 Register- und Datentransportbefehle ..........2..cceeeeen 66 2.3.2 Arithmetische und logische Befehle ...........c2ccceeeeen 78 2.3.3 Komplementierungs- und Schiebebefehle ..............2..: 85 2.3.4 Vergleichs- und Testbefehle ...........r20ceeeeeeeeeenn 87 2.3.5 Verzweigungs- und Sprungbefehle ........ 2.222 reeenene 89 2.3.6 Sonstige Befehle ......... 2.22 eeeeeeeneeenerenen en 93

2.4 Prozessorsignale und Interrupt-Verhalten .........2.22eceeeeenen 95 2.4.1 Versorgung und Takterzeugung ......222222eeeeeenennnnn 96 2.4.2 Datenund Adressen ... 2:22:22 snneer ernennen nennen 97 2.4.3. Büus-Statüs usa: an es Der BERRL eale 98 24.4: "Büs-Timing 2.242 ae nee a he 101

2.4.5 Halt-Steuerung und DMA-Transfer ...... 2.2220 eeeeeeenen 104

Inhaltsverzeichnis vi

2.46 Reset-Verhalten .... 2:22 22mm 107 2.4.7 Hardware-Interrupts .... 2.2 Con oeeeenneennenene 110 2.4.8 Software-Interrupts . 2... 222mm nennen 116 2.4.9 Befehle mit Interrupt-Eigenschaften ........ 222.2 eeeen 117 2.4.10 Der 680I.E:. S.2..2400 ze ara a a er a 121

3 Mikroprozessorbausteine ..........:22222ueeeeeeeneeneenenn 123 3.1 Speicherbausteine ...... 2.2.2222 eeeneeereneeenenenen nenn 123 3.1.1 Ordnungsprinzip und Kenngrößen von Speichern ............. 124 3.1.2 Einteilung der Halbleiterspeicher .........22eeconeerennn 125 3.1.3 Speicherorganisation ....: 222m on ums nnen nn 129 3.1.4 Speicherzellentypen ...... 2.22.22 neeeeeeeenneenennnnn 132 3.15 RAM-Speicher .... 2:22 Comes een een een enerenn 138 3.1.6 Einige Beispiele industrieller Standard-RAM-Speicher .......... 142 3:21:7: -Festwertspeichen, ru... nenne ie Mir 151 3.1.83 Maskenprogrammierbarer Festwertspeicher (ROM) ........... 154 3.1.9 Anwenderprogrammierbarer Festwertspeicher (PROM) ......... 156 3.1.10 Mehrfach programmierbarer Festwertspeicher (REPROM) ....... 157 3.1.11 Der 2716-EPROM-Speicher ... 2.2... 22m oneeeeeereenn nn 158 3.1.12 Einfache Programmer-Schaltung für 2716-EPROM ............ 163 3.1.13 Aufbau von Speichersystemen ..... 2... none 165

3.2 Ein-/Ausgabe mit TTL-Bausteinen .... 2... Common nennen 169 3.2.1 Ein-/Ausgabe-Prinzip ...:. 2 Coon eeereeneenrenreneer nn 169 3.2.2 Anschluß von Anzeigen an den Mikroprozessor ........2.2.2.2.20. 171 3.2.3 Anschluß von Schaltern an den Mikroprozessor ... 2... ...2.2.. 178

3.3 Peripherie-Interface-Adapter (PIA) 2... 2 uno nenneener en 182 3.3.1 Anschlüsse des PIA6820 ..... 2.2 o co ounenerneeeeeennn 183 3.3.2 Interner Aufbau des PIA6820 ........ 22. nnneneeenennen 185 3.3.3 Steuerregister desPIA 6820 ......... mm neeeeneeenenen 186 3.3.4 Adressierung des PIA 6820 ........ 2222er nenenenenen 188 3.3.5 Initialisierung des PIA 6820 . 2... 22. Coon neennennnen 189 3.3.6 Beispiel einer Ein-/Ausgabe-Schaltung miteinem PlIA .......... 190 3.3.7 Multiplexbetrieb von 7-Segment-AnzeigenmiteinemPlA ....... 192 3.3.8 Tastaturanschluß miteinem PlA ..... 2... on none 194

3.4 Asynchronous Communications Interface Adapter (ACIA) ........... 197 34:1 “Formatierung... 8er ra a eh ein 197 3.4.2 Serielle Anpassung mit Software . 2.2... CC Comes neeennnn nen 198 3.4.3 Interner Aufbau des ACIA .. 2... 2.22 nun nennennennnn 199 3.4.4 Steuerregister des ACIA 2.2... Con nuennnenenennenennnn 202 3.4.5 Statusregister des ACIA ... 2 oo ononeeeeeeen een enennnn 203 3.4.6 Initialisierung des ACIA .... 2... onneneennenrnnn 205 3.4.7 Terminalanschluß mit ACIA ..... oo. nennen 206

3.5 Spezielle Bausteine ..... 2.2.2 come e nee en enn 207 3.5.1 Programmierbarer Zählerbaustein (PTM) ........22 22.222200. 207 3.5.2 Priotitäts-Interrupt-Controller (PIC) „2.2.22 con none. 213

3.5.3 Baustein für direkten Speicherzugriff ([DMA) . .... 2... 2.2220 .. 215

vl Inhaltsverzeichnis 3.5.4 Floppy-Disk-Controller (FDC) . 2.2... 2.2 non onen 217 3.5.5: GRT-Controller .. 2... mas near Be a re 219

4 Mikroprozessorsysteme mit dem 6809 ..........:2 cc cceeeeenn 220

4.1 Minimalsystem im Selbstbau ...2 2.2222 ounn nennen 220 4.1.1 Kurzbeschreibung des GLS0O9 ...... 22 cum eeneenenennnnn 220 4.1.2 Blockschaltbild, technische Daten, Eigenschaften ............. 221 4.1.3 Speicherbelegungsplan und Adressencodierung .........2220.. 223 4.1.4 Erweiterungsmöglichkeiten, Treiberbausteine ........ 2.200. 227

4.2 Personalcomputer mitdem 6809 ......... nme 230 42.1 DRAGON 32/64 ...::.. on o onen eeneerneen 230 4.222: "TO720 er Ne N 231 4.2.3 TRS-80 Color Computer . 2... non onen nnn 233 424 EUROCOMUN 2.2... o onen 234

4.3 Der EKF-Computer ein industrielles Entwicklungssystem ........... 234 4.3.1 Beschreibung des Systemkonzepts . . 2... 22 222 cc onen 234 4.3.2 6809-CPU-Karte ... 22 oo none 238 4.3.3 6821 Parallel Interface-Karte . ... 2.2222 onn een 240 4.3.4 6850 Serielle Interface-Karte ..... 2.2 mneneenennenen nn 242

5 Datensteuerung und Schnittstellen .........:.:.: 222220 eneeeen 244

5.1 Datenaustausch durch Programmsteuerung ..... 2.2.2220 eeneennn 244

5.2 Datenaustausch durch Interrupt .. 2... 22. c nme ernennen 245

5.3 Datenaustausch durch Handshaking . . ....:. 2222er 246 5.3.1 Synchronisation der Datenübertragung . ....-. 2.22. eeenen 246 5.3.2 Datenverkehr zwischen zwei Mikrocomputern im

Handshake-Betrieb mit Interrupt .. 2... 2222. eeerennnnnn 247

5.4 Mehrfache Interrupt-Verarbeitung .......: 222er 256 5.4.1 Software-Interrupt-Steuerung . .... 2.22 2ueeeeeeneeneenn 256 5.4.2 Hardware-Interrupt-Steuerung .....: 22er 259

5.5 Anpassungsprobleme ........ 2... onen nennen 266 5.5.1 Elektrische Anpassung ......: on n en nernenn 266 5.5.2 Zeitliche Anpassung .... 2... 2m. run neeeerennneenenene 269

5.6 Serielle Schnittstellen ... 2... 2.2.22 comueeeee nennen 271 5.6.1 Die20 mA-Stromschleife ...... 2222 eneeeeeeeeennenn 272 5.6.2 Die RS-232 (V24)-Empfehlung . ....... 2222er 272 5.6.3 Beispiel einer RS-232-Schnittstelle mit ACIA ........ 222200: 273

5.7 IEC-Bus-Schnittstelle . 2.2.2.2 22 Con enneeernreenereeneenn 278 5.7.1 Funktionselemente ....... none ernennen 278 5.7.2 Signalleitungen ....... 2.2 oonereeeenreneeerenn ne: 279 5.7.3 Nachrichtenübertragung im Dreidraht-Handshake-Verfahren ..... 282 5.7.4 Adressen und Befehle ........ 22.20 eeeeneneenene 283 5.7.5 Schaltungsbeispiel mit dem GPIA 68488 ..........ceccneen 284

5.7.6 Mechanische und elektrische Spezifikationen ...........2.2.. 287

Inhaltsverzeichnis IX

6 Einführung in maschinenorientiertes Programmieren

mit dem 6809 ......:::ooooouennenneeeeeeeeeetenee 289 6.1 Programmierungstechniken ...... 22.2220 er een ere en eeen nn 289 6.1.1 Arbeitsweise beim Programmieren .......:: 2: nn. 289 6.1.2 Flußdiagramm .. 2.2... MC Comer 295 6.1.3 Verzweigung, Verteiler ... 2.222 ooonner rennen 295 6:1:4: Schleifen un. ha 2m a ee rn 296 6.15 Struktogramme „2.2... 2 moon nneen een 298 6.1.6 Unterprogrammtechniken ... 2... 222er 299 6.2 Assemblerprogrammierung ........Cenern nenne 301 6.2.1 Die Assemblersprache .. 2.22.22. nueeeeeer rennen 301 6.2.2 6809-Assembler-Syntax 2.2222. 304 6.3 Programmierbeispiele ....... 22 .n nennen 308 6.3.1 Addition von Dualzahlen ....... 2... non eeeeeneeennen 308

6.3.2 Löschen, Suchen, Sortieren und Verschieben von Speicherinhalten u... u ra en 310 6.3.3 Operationen mit Zahlen in Mehrfachgenauigkeitsdarstellung ..... 316 6.3.4 Codes und Codewandlung ..... 2... .nneeeeeneeerennnen 324 6:35, »Zeitschleifen: u. u =: 2 2a ae en Drache 331 7 Der 6809 im praktischen Einsatz ........... 22222. nnen 336 7.1 Einfache Anwendungen zum Experimentieren ....... 2.2220 336 7.1.1. Arbeiten mit dem Experimentierboard ....... 22222222000. 336 7.1.2 Automatische Ampelsteuerung .....: 2.2... con. 337 7.1.3 Lauflichtsteuerung mit Interrupt . 222222222. 339 7.1.4 Anschluß von 7-Segment-Anzeigen ........ 2.2. 341 7.1.5 Anschlußeiner Tastatur... 2... 2 CC Cnonnnrnnennernennnn 344 7.1.6 Der 6809 als Musikgenerator ....:...o co nneereneernn 347 7.1.7. Der 6809 als Funktionsgenerator ...... 2.222... 351 7.1.8 Schrittmotorsteuerung . 2.2222. 356

7.2 Logikanalyse der 6809 in der Meßtechnik

RER. Safferthall: 2... 232 2 rer ier BRen 358 7.2.1 Funktionsweise eines Logikanalysators ..... 2.2 cc nennen 359 7.2.2 Anschluß eines Logikanalysators an den 6809 ........ 2.2.2... 361 72.3 Aufzeichnungsprobleme ....:.. 22.2. 2nneenrneernnnenn 362 72.4 Die Diassemblierung . 2.2: 2222 onen. 366 72.5 Datenqualifikation ... 2.2.22: Coon 368 4426: TimeStämps u su nn le a le re ee 370 7.3 CAD/CAM der 6809 in der Steuer- und Regeltechnik (Havel) ........ 371 7.3.1 Geräteausstattung 2.22 mon 371 7.3:2= Eünktiönen:. are naeh ae 372 7.3.3 Technische Daten ...:..: 2 Common 377 Anhang: Befehlstabelle des 6809 ..........:. 2... onuenen. 378

Sachwortverzeichnis . .. 2.2... oo n 387

1 Einführung in die Struktur und Arbeitsweise eines Mikroprozessorsystems

1.1 Einführung in die Hardware-Struktur

Wer sich heute einen Heimcomputer kauft, bekommt meist als Zugabe ein Handbuch mitgeliefert, das in die Bedienung des Ge- rätes einweist und in der Regel auch gleich eine Einführung in die Programmiersprache BASIC enthält. Recht bald möchte man dann "mehr machen" als nur in BASIC programmieren. Um effizienter programmieren zu können, ist es aber notwendig, mehr von der Struktur des Rechners zu verstehen. Dazu soll das nachfolgende Kapitel verhelfen.

1.1.1 Grundsätzlicher Systemaufbau

Ein Mikroprozessorsystem (Mikrocomputer) besteht im Prinzip aus drei Baugruppen (Bild 1.1): Mikroprozessor, Speicher, Ein- /Ausgabebaustein.

Der Mikroprozessor ist die Zentraleinheit (CPU: Central Processing Unit) eines Mikrocomputers. Er ist ein hochintegrier- ter Baustein, der für sich allein nicht arbeitsfähig ist. Er ist das Herz eines Mikrocomputers. Die Begriffe CPU und Mikroprozes- sor werden oft gleichwertig benutzt. Man kann die CPU in Rechen- werk und Steuerwerk aufteilen. Die CPU verarbeitet Daten in Abhängigkeit von einem Programm. Das Rechenwerk führt dabei die arithmetischen und logischen Verknüpfungen aus, während das Steuerwerk die betreffenden Abläufe steuert, und zwar innerhalb des Mikroprozessors selbst, als auch zwischen den einzelnen Kom- ponenten. Das Steuerwerk veranlaßt das Lesen der Befehle aus dem Speicher und steuert ihre Ausführung. Die Operanden (Daten) werden vom Speicher oder vom Ein-/Ausgabebaustein in die CPU eingelesen, die Ergebnisse der Operation an den Speicher oder über den Ein-/Ausgabebaustein ausgegeben. Wie noch gezeigt wird, verfügt die CPU auch über kleine, aber schnelle Speicher (Regis- ter), in denen während der Verarbeitung Daten zwischengespeichert werden können.

2 1 Einführung in die Struktur und Arbeitsweise eines Mikroprozessorsystems

COMPUTERSYSTEM

MIKROCOMPUTER

Taktgenerator {Clock)

MIKROPROZESSOR CPU]

Rechenwerk (ALU mitÄCC) Steuerwerk (CU)

SPEICHER (MEMORY|

Festwertspeicher (ROM, PROM,EPROM] Schreib/lese- Speicher (RAM)

u > [} D ce [7 o oa

Steuer - Bus

EIN-/AUSGABE- BAUSTEIN {INTERFACE ADAPTER)

PERIPHERIE (1/0 --DEVICE) (Periphere Speicher.Ein-/Ausgabe-Gerät )

Bild 1.1 Aufbau eines Computersystems

Der Speicher (Memory) enthält das Programm und die Daten. Die kleinste Einheit eines Speichers ist der Speicherplatz. Die- ser hat eine Länge von meist 8 Bit, die sogenannte Wortlänge. Jeder Speicherplatz hat eine "Hausnummer", eine sogenannte Adres- se, die für ihn typisch ist, und über die nur er allein erreicht werden kann. Auch die Adresse wird als Bitmuster angegeben. Mit

18, 65536 unterschiedliche Adressen ee

16 Bits können z.B. maximal 2 angegeben werden. In der Datenverarbeitung gilt: 2

1K (K gelesen Kilo). Damit kann man schreiben:

216.26. z10 _ 64 - 1024 = 64K.

Die Adreßlänge bestimmt den Adreßraum des Mikroprozessors. Man sagt: Ein Mikroprozessor mit 16 Adreßanschlüssen hat einen Adreßraum von 64K. In der Mikroprozessortechnik werden die Daten

1.1 Einführung in die Hardware-Struktur 3

und die Adressen wegen der leichteren Handhabung meist im Hexa- dezimalsystem angegeben. Bild 1.2 zeigt die symbolische Darstel- lung eines Speichers mit 64K Speicherplätzen von je 8 Bit NWort- länge. Die eingetragenen Daten sind willkürlich.

Adresse Inhalt

0000 0001 0002

ee

FFFD FFFE

FFFF

Bild 1.2 Symbolische Darstellung eines Speichers

Die Adresse besteht also aus 16 Bit = 4 Hexadezimalziffern, und das Datenwort aus 8 Bit = 2 Hexadezimalziffern.

Die Ein-/Ausgabe-Einheit ermöglicht den Datenverkehr zwi- schen Mikrocomputer und der "Außenwelt". Sie bildet die Schnitt- stelle zwischen Mikroprozessorsystem und der Peripherie. Eine sehr häufige Bezeichnung lautet auch Interface. Ein Interface kann im einfachsten Fall aus einem Register bestehen, das zur Zwischenspeicherung dient. Es kann sich aber auch um einen hochkomplexen Baustein handeln, der selbst bestimmte Steuerfunk- tionen übernimmt. Der Mikroprozessor steht in ständigem Daten- austausch mit dem Speicher und dem Ein-/Ausgabebaustein. Dieser Datenaustausch ist auf Leitungen angewiesen. Alle diese Lei- tungen kann man in drei Bündel aufteilen, die man als Bus bezeichnet.

Der Adressen-Bus ist ein Leitungsbündel, das für die Weiter- gabe der Adressen von der CPU an den Speicher oder den Ein- /Ausgabebaustein sorgt. Da die CPU als einziger Baustein Adres- sen ausgeben kann, ist der Adressen-Bus unidirektional, d.h., die Signale können nur in einer Richtung laufen.

Der Daten-Bus ist ein Leitungsbündel, das die zu verarbei- tenden Daten transportiert. Die Daten müssen in beiden Rich- tungen transportiert werden können. Der Daten-Bus ist daher bidirektional ausgelegt.

4 1 Einführung in die Struktur und Arbeitsweise eines Mikroprozessorsystems

Der Steuer-Bus übermittelt Signale der CPU an die übrigen Bausteine, um das richtige Zusammenarbeiten aller Bausteine zu bewerkstelligen.

Alle drei Busse werden unter dem Begriff Systembus zu- sammengefaßt. Man sagt auch: ein Mikroprozessorsystem ist bus- orientiert. Am Bus können mehrere Baugruppen hängen, und zwar einzelne Register genauso wie größere Funktionseinheiten. Aller- dings dürfen immer nur zwei Systemkomponenten gleichzeitig auf den Bus aufgeschaltet sein. Die Steuerung der Busse übernimmt in den meisten Fällen der Mikroprozessor selbst. Es ist allerdings auch möglich, daß ein externes Gerät die Verwaltung des System- busses übernimmt.

Der Vorteil des Datenaustausches über Busse liegt in der modularen Erweiterbarkeit des Mikroprozessorsystems, ohne daß der Aufwand für die Verbindungstechnik ins Uferlose steigt.

Im folgenden soll noch kurz auf den Unterschied zwischen Taschenrechner und Mikrocomputer eingegangen werden. Mit einem Taschenrechner kann man recht komplizierte Operationen ausführen, indem man auf eine Taste drückt. Will man ein bestimmtes Problem bearbeiten, so muß man in der richtigen Reihenfolge die entspre- chenden Tasten drücken und eventuell auch Zwischenergebnisse notieren. Auch die zu verarbeitenden Zahlen müssen eingegeben werden. Das aber heißt, die Geschwindigkeit, mit der das Problem abgearbeitet werden kann, hängt vom Menschen ab. Das wird beim Mikrocomputer vermieden, indem man die einzelnen Rechenschritte durch ein Programm steuert. Dieses Programm steht im Speicher des Computers (stored program concept). Das Programm besteht aus einer Anzahl von Befehlen (instructions), die die CPU inter- pretieren und ausführen kann.

Wie bereits erwähnt, ist die kleinste Einheit, mit der ein Mikroprozessor normalerweise umgeht, ein Byte (1 Byte = 8 Bit). Ein solches Byte, das von der CPU immer in der gleichen Weise behandelt wird, kann sehr verschiedene Bedeutungen haben. Es kann zum Beispiel eine Zahl darstellen, die zu verarbeiten ist. Es kann einen Befehl an die CPU darstellen. Es kann sich um ein ASCII-Wort handeln, welches einen Buchstaben darstellt, oder. es kann sich um den Teil einer Adresse handeln. Es kommt nur darauf an, wie das jeweilige Byte, also die Bitkombination, interpre- tiert wird. (ASCII: American Standard Code for Information Interchange, nach DIN: 7-Bit-Code für den Datenaustausch).

Arbeitet die CPU mit einer Wortlänge von 8 Bit, so sind auch die meisten anderen Komponenten auf 8 Bit abgestimmt, zum Bei- spiel Register oder Speicherplätze.

1.1 Einführung in die Hardware-Struktur 5

Um den Einstieg in die Mikrocomputertechnik zu erleichtern, soll zunächst ein Model lmikrocomputer besprochen werden. Dieser hat nach wie vor die wesentlichen Merkmale eines echten Mikropro- zessors, aber ohne fortgeschrittene technische Merkmale.

Das Bild 1.3 zeigt das Blockschaltbild eines Model1mikrocom- puters. Er besteht aus dem Mikroprozessor (CPU), dem Speicher und den Ein-/Ausgabe-Registern. Im folgenden sollen nur die CPU und der Speicher besprochen werden. Auf den Ein-/Ausgabebaustein wird später eingegangen.

Arithmetisch - logische a een |

Datenregister

Befehls- E decodierer Programmzähler

en Adressenregister

Takt

AUSGABE - Register

DATEN-BUS ADRESSEN- STEUER-BUS

Bild 1.3 _Blockschaltbild des Modellmikrocomputers

6 1 Einführung in die Struktur und Arbeitsweise eines Mikroprozessorsystems

1.1.2 Mikroprozessor

Wie das Bild 1.3 zeigt, haben alle Register eine Wortlänge von 8 Bit.

Die arithmetisch—logische Einheit (ALU: Arithmetic Logic Unit) ist gewissermaßen das Herz des Mikroprozessors. Sie hat zwei Aufgaben:

1. Ausführung arithmetischer Operationen

2. Ausführung logischer Operationen

Die ALU hat zwei Eingänge. Der eine kommt vom Akkumulator, der andere vom Datenregister. Der Ausgang der ALU geht wieder auf den Akkumulator. Der Akkumulator und das Datenregister liefern an die ALU 8 Bit lange Binärworte, die sogenannten Operanden. Die beiden Operanden werden von der ALU so behandelt, wie es die Binärsignale am Steuereingang der ALU (die über den Steuer-Bus kommen) vorschreiben. Diese Steuersignale werden aus dem jewei- ligen Befehlswort abgeleitet. Nach Beendigung der Operation speichert die ALU das Ergebnis im Speicher wieder ab.

Der Akkumulator (ACC: Accumulator) ist das am meisten be- nutzte Register in der CPU. Er hat eine doppelte Aufgabe: Vor der Operation enthält er einen der Operanden, nach der Operation enthält er das Ergebnis. Viele Befehle beziehen sich auch direkt auf den Akkumulator, wie z.B. "LDA": Load Accumulator (Lade Akkumulator). Dieser Befehl bringt den Inhalt eines Speicher- platzes in den Akkumulator.

Das Datenregister ist ein Zwischenspeicher, der eng mit dem Daten-Bus zusammenarbeitet. Es hat u.a. zwei Aufgaben: 1. Speicherung des Befehls während der Decodierung 2. Zwischenspeicherung eines Datenwortes während der Abspei- cherung im Hauptspeicher.

Das Adressenregister speichert die Adressen desjenigen Spei- cherplatzes oder desjenigen Ein-/Ausgabe-Registers, mit dem die CPU gerade zusammenarbeitet.

Im Programmzähler (PC: Program Counter) steht die nächste zu bearbeitende Speicheradresse. Normalerweise werden die Befeh- le der Reihe nach aus dem Speicher in die CPU geholt (unverzweig- tes Programm). Das heißt, der Inhalt des Programmzählers muß bei jedem Befehlszyklus um 1 erhöht werden. Man sagt, er wird inkre- mentiert. Die Stellenzahl des Programmzählers ist ein Maß für die Anzahl der zu adressierenden Speicherplätze. In unserem Modellcomputer hat dep Programmzähler 8 Stellen. Es können damit 256 Speicherplätze (2 ) direkt adressiert werden.

1.1 Einführung in die Hardware-Struktur 7

Nachdem ein Befehl vom Speicher in das Datenregister geholt worden ist, decodiert der Befehlsdecodierer die einzelnen Bits und entscheidet dann, was zu tun ist.

Das Steuerwerk (CU: Control Unit) liefert über den Steuer- Bus an jeden Baustein entsprechende Signale, so daß diese wissen, was zu tun ist.

1.1.3 Speicher

Der Mikrocomputer wird mit Hilfe von Befehlen gesteuert. Diese Befehle bilden das Programm, welches im Speicher (Memory) abgespeichert ist. Ferner enthält der Speicher die Operanden, auf die die Befehle angewandt werden. Auch die Ergebnisse der Operationen werden zum Teil wieder im Speicher abgelegt.

Als Speicher für Mikrocomputer verwendet man fast nur Halb- leiterspeicher. Auf die Technologie und Organisation solcher Speicher soll an dieser Stelle nicht weiter eingegangen werden. Man kann die Halbleiterspeicher unter ganz verschiedenen fGe- sichtspunkten in Gruppen aufteilen. An dieser Stelle soll fol- gende Aufteilung vorgenommen werden:

1. Festwert-Speicher (ROM: Read Only Memory) Diese Speicher können nur gelesen werden.

2. Schreib-/Lese-Speicher (RAM: Random Access Memory) Diese Speicher können nicht nur gelesen werden, sondern es kann auch in sie hineingeschrieben werden.

Im folgenden soll erklärt werden, wie die CPU und der Spei- cher Daten austauschen. In der CPU sind für diesen Datenaus- tausch das Adressenregister und das Datenregister zuständig. Das Ein-/Ausgabe-Register ist bei diesen Betrachtungen weggelassen.

Der Modellmikrocomputer benutzt einen Schreib-/Lese-Speicher mit 256 Speicherplätzen zu je 8 Bit, wie ihn Bild 1.4.a zeigt. Man spricht auch kurz von einem 256 x 8-Bit-Speicher. Der Spei- cher ist über die drei Busse mit der CPU verbunden. Der Adres- sen-Bus unseres Modellmikrocomputers ist 8 Bit breit. Das bedeu- tet, daß 256 Speicherplätze angewählt (adressiert) werden können. Der erste Speicherplatz hat die Adresse 0, der letzte die Adresse 255, binär ausgedrückt 11111111 und in der häufig angewandten hexadezimalen Schreibweise FF. Der Adressendecodierer decodiert die Adresse und wählt den entsprechenden Speicherplatz aus. Die Daten kommen und gehen über einen sogenannten Tri-State-Buffer

8 1 Einführung in die Struktur und Arbeitsweise eines Mikroprozessorsystems

(ein "Puffer" mit drei Zuständen). Die Ausgänge solcher Bau- steine kennen außer dem '"High"- und "Low"-Zustand noch einen dritten, hochohmigen Zustand. In diesem hochohmigen Zustand ist der Baustein abgeschaltet und beeinflußt den übrigen Datenverkehr auf dem Bus nicht mehr.

Der Speicher besitzt außerdem noch zwei Steuereingänge: R/W (Read/Write: lesen/schreiben) und CS_(Chip Select: Chip-Aus- wahl). Der logische Pegel auf der R/W-Leitung bestimmt, ob der Speicher sich im Lese- oder Schreibzustand befindet. Mit dem Signal CS wird der gesamte Speicher aktiviert. Man benötigt CS zur Auswahl des gewünschten Speichers, wenn mehrere Speicher parallel an denselben Adressleitungen hängen.

. . © D

olo ar

Adresse von CPU Daten von/zur CPU

Adressendecodierer Tri-state-Buffer

NRIEREERE el ji S

R/W-

Speichersteuerung

0111 1010

ee 1. no Daten zur CPU

Adr. 0000 0011 Adressendecodierer Tri-state- Buffer

Ss

cs Bild 1.4 Schreiben in den Speicher

.e ee 011. en—-0O 1000 1011 Daten von CPU

Adr.0000 0111 Tri-state-Buffer

s

cs

Bild 1.4.b zeigt, wie die CPU Daten aus dem Speicher liest. Es soll der Inhalt des Speicherplatzes Nummer %03 ausgelesen werden. Die dort gespeicherte Zahl ist $7A. Als erstes schaltet

1.2 Einführung in die Programmierung 9

die CPU die Adresse $03 auf den Adressen-Bus. Der Decodierer entschlüsselt das Bitmuster und wählt den Speicherplatz aus. Als zweites legt die CPU die R/W-Leitungen auf High-Potential. Damit erscheint der ausgewählte Speicherinhalt an den Eingängen des Puffers. Das Signal an CS entscheidet, ob dann das Datenwort auf den Daten-Bus gelegt wird. Von dort kann es dann die CPU able- sen. Es sollte noch erwähnt werden, daß dieser Lesevorgang ohne Zerstörung des Speicherinhaltes abläuft (nondestructive readout).

Das Schreiben in den Speicher zeigt Bild 1.4.c. Die Zahl $8B soll am Platz mit der Nummer $07 gespeichert werden. Zu- nächst legt die CPU die Adresse $07 auf den Adressen-Bus, an- schließend die Zahl $8B auf den Daten-Bus. Als nächstes sendet die CPU ein Schreibsignal, indem sie die R/W-Steuerleitung auf Low-Potential legt. Wenn der Speicher durch das entsprechende CS-Signal aktiviert ist, wird die Zahl von dem Puffer in die Speicherstelle $07 eingeschrieben. Der vorhergehende Inhalt ist damit gelöscht.

1.1.4 Ein-/Ausgabebaustein

Der Ein-/Ausgabebaustein (Interface-Baustein) dient zur Datenpufferung zwischen Mikroprozessor und Peripherie und zur Steuerung des Datenverkehrs. Er enthält dazu mindestens drei Register:

- ein Datenregister zur Zwischenspeicherung der Daten,

- ein Steuerregister zur Steuerung der Datenübertragung,

- ein Statusregister zur Anzeige der Betriebszustände.

Alle Register haben eine Adresse und werden von der CPU wie normale Speicherplätze behandelt.

Der Interface-Baustein übernimmt die Daten von der CPU über den System-Bus 8-Bit-parallel. Zwischen Interface-Baustein und

Peripheriegerät kann die Datenverarbeitung entweder bitparallel oder bitseriell erfolgen.

1.2 Einführung in die Programmierung 1.2.1 Aufbau eines Befehls

Für die nachfolgenden Erklärungen verwenden wir ein ein- faches Additionsbeispiel.

10 1 Einführung in die Struktur und Arbeitsweise eines Mikroprozessorsystems

Beispiel:

Es sollen die beiden Dezimalzahlen 11 und 3 addiert werden.

Für diese einfache Aufgabe muß (im Gegensatz zum Taschen- rechner) ein Programm geschrieben werden. Dazu wiederum muß der Programmierer wissen, welcher Befehlssatz ihm bei seinem Mikro- prozessor zur Verfügung steht. Jeder Mikroprozessor-Hersteller liefert zu seinem Prozessor auch eine Befehlsliste. Für unsere Aufgabe benötigen wir aus dieser Liste drei Befehle, die im Bild 1.5 aufgeführt sind.

OPCODE MNEMONIC Beschreibung

LDA # ( ADD # HLT

Lade den Inhalt des nächsten Speicherplatzes in den Akku- mulator.

Addiere den Inhalt des näch- sten. Speicherplatzes zum gegenwärtigen Inhalt des Akkumulators. Speichere das Ergebnis im Akkumulator. Halt für alle Operationen.

10001011

10000110 86 88 3E

Bild 1.5 Befehle des Model Imikrocomputers

00111110

Die erste Spalte unserer Befehlstabelle enthält die Befehle in mnemonischer Schreibweise. Eigentlich besteht jeder Befehl aus einem Bitmuster, das die CPU auch lesen kann. Für den Pro- grammierer aber ist es einfacher, wenn er bei der Erstellung eines Programms mit Abkürzungen umgehen kann, die der Umgangs- sprache entnommen sind.

Wenn der Anwender sein Programm mit diesen Mnemonics schreibt, schreibt er sein Programm in Assemblersprache. Diese Sprache versteht der Rechner nicht, oder jedenfalls nicht ohne weiteres. Es gibt nun zwei Möglichkeiten:

a) Der Programmierer überläßt die Umsetzung des in Assembler- sprache geschriebenen Programms dem Rechner selbst. Der Rechner bewältigt dies wiederum mit einem Programm, dem soge-- nannten Assemblerprogramm.

1.2 Einführung in die Programmierung 11

Das Assemblerprogramm übersetzt das in Assemblersprache geschriebene Programm (also die Mnemonics) in die Maschi- nensprache des Rechners (also die zugehörigen Bitmuster).

b) Der Programmierer assembliert "von Hand" mit Hilfe einer von der Firma gelieferten Tabelle. Dabei kann er die Mnemonics in Hexadezimalzahlen umsetzen und diese über eine Hexadezi- maltastatur eingeben, oder er setzt sie in das Binärmuster direkt um und gibt dann Bit für Bit über Tasten oder Schalter ein. Letzteres Verfahren ist sehr mühselig. Mit der Hexa- dezimaltastatur arbeiten die meisten Kits.

Die zweite Spalte der Befehlstaballe enthält den Opcode, eine Abkürzung für Operationscode. Der Opcode ist in binärer und in hexadezimaler Schreibweise angegeben. Der Opcode repräsen- tiert den Befehl, den die CPU ausführen soll. Meist folgt nach dem Opcode der Operand.

Der Opcode gibt an, was getan werden soll.

Der Operand gibt an, womit die Operation auszuführen ist.

Beispiel: Wir können nun das Programm für unser Problem schreiben.

LDA 11 ADD HLT

Damit die CPU das Programm bearbeiten kann, müssen wir es

in den Speicher schreiben. Wie man es in den Speicher bekommt, wird später erklärt. Bei welchem Speicherplatz wir beginnen, spielt keine Rolle.

In unserem Beispiel beginnen wir mit dem Speicherplatz mit der Nummer O0, also mit der Adresse 0000. Ferner müssen wir daran denken, daß jeder Speicherplatz eine Länge von 8 Bit, also einem Byte hat. Der erste Befehl LDA 11 benötigt also 2 Speicher- plätze, denn er ist 2 Bytes lang. Das erste Byte enthält den Opcode für den Ladebefehl, das zweite Byte enthält den Operanden Yes Der Rechner kann das Programm selbstverständlich einzig und allein in binärer Form speichern. Wir haben bei unserem Model1- computer eine Hexadezimaltastatur zur Verfügung. Die Umsetzung in die binäre Form geschieht durch Hardware. Das Programmbei- spiel im Bild 1.6 ist daher vollkommen in hexadezimaler Form geschrieben, wie es der Programmierer "von Hand" mit Hilfe der Befehlstabelle assembliert. Daneben ist das Programm in der

12 1 Einführung in die Struktur und Arbeitsweise eines Mikroprozessorsystems

binären Form angegeben, wie es auch im Speicher steht. Unser Programm ist also 5 Bytes lang und benötigt daher 5 Speicher- plätze.

Adresse SPEICHER Programm hexadez. binär hexadezimal 00 00000000 10000110 86 | 01 00000001 00001011 08 | 02 00000010 10001011 03 00000011 00000011 04 00000100 00111110

FD 11111101 FE 11111110 FF 11111111

Bild 1.6 Programmbeispiel 1.2.2 Bearbeitung eines Befehls

Die Abarbeitung der Befehle erfolgt immer in der gleichen, sich ständig wiederholenden Weise. Man unterscheidet zwischen Holphase (Fetch-Phase) und Ausführungsphase (Execute-Phase).

Während der Holphase wird der Befehl vom Speicher geholt und anschließend von der CPU decodiert. Für alle Befehle benötigt die Holphase die gleiche Zeit, da immer die gleichen Operationen durchlaufen werden.

Während der Ausführungsphase führt die CPU die dem Befehl entsprechende Operation aus. Da die Befehle unterschiedlich sind, läuft auch die Ausführungsphase unterschiedlich ab. _ Dies wiederum bedeutet einen unterschiedlichen Zeitaufwand. Mit Hilfe unseres kleinen Programms soll gezeigt werden, wie die CPU Befehle holt und dann ausführt.

1.2.3 Ablauf eines Programms

Die Bearbeitung des Beispielprogramms: zerfällt in 5 Phasen: a) Holen des ersten Befehls (Opcode-Byte)

1.2 Einführung in die Programmierung 13

b) Ausführen des ersten Befehls (Operanden-Byte) c) Holen des zweiten Befehls (Opcode-Byte) d) Ausführen des zweiten Befehls (Operanden-Byte) e) Holen und Ausführen des dritten Befehls

Damit die CPU überhaupt mit der Arbeit beginnen kann, muß der Programmzähler auf die Adresse des ersten Speicherplatzes gesetzt werden, wo der erste Befehl unseres Programms steht. Wie der Programmzähler auf diese Adresse gesetzt wird, wie also der Computer gestartet wird, wird später erklärt. Wir nehmen jetzt an, daß der Programmzähler mit 00000000 geladen ist. Der gesamte Ablauf, wie er im folgenden erklärt wird, steht unter der Regie des Steuerwerks.. Die im nachflogenden Text eingekreisten Zahlen beziehen sich auf die jeweiligen Bilder.

a) Holen des ersten Befehls

Anhand von Bild 1.7.a soll die Holphase des ersten Befehls er- klärt werden.

G) Der Inhalt des Programmzählers wird in das Adressenregister geschrieben, welches mit dem Adressen-Bus verbunden ist. Somit steht auf dem Adressen-Bus die Adresse des gewünschten Speicherplatzes.

@) Der Inhalt des Programmzählers wird um 1 erhöht. Der Inhalt des Adressenregisters wird dabei nicht geändert!

©) Über den Daten-Bus wird der Inhalt des ausgewählten Spei- cherplatzes in das Datenregister der CPU eingelesen. Im Datenregister steht also zu diesem Zeitpunkt der Opcode des Ladebefehls (10000110).

(a) Aufgrund der internen Beschaltung weiß das Steuerwerk, daß nach der Abarbeitung des vorhergehenden Befehls immer ein Opcode in das Datenregister eingelesen wird. Somit wird jetzt das Bitmuster im Datenregister in den Befehlsdecodie- rer gebracht, wo es decodiert wird. Hier wird also das Bitmuster 10000110 als Ladebefehl erkannt. Das am Befehls- decodierer angeschlossene Steuerwerk erzeugt daraufhin die Impulse, die für die Ausführung des Ladebefehls notwendig sind.

14

1 Einführung in die Struktur und Arbeitsweise eines Mikroprozessorsystems

Takt

er:

Arithmetisch-logische Einheit

Ber Befehls- Steuerwerk ae)

Daten -Bus

® & =

hexadez. binär

Steuer-Bus

Adressenregister Adressen-Bus [0ToJoToToToTofo]

: Speicher

Adresse IMnemonics

00000110 00000111 00001000

00001001

Bild 1.7.a Holen des ersten Befehls

b) Ausführen des ersten Befehls

Bild 1.7.b zeigt das Ausführen des ersten Befehls.

©

0) ®

Der Inhalt des Programmzählers (also die Adresse des näch- sten Byte) wird in das Adressenregister geschrieben. Damit liegt die Adresse des Operanden auf dem Adressen-Bus.

Der Inhalt des Programmzählers wird um 1 erhöht. Damit ist er bereit für die nächste Holphase.

Über den Daten-Bus wird der Inhalt des adressierten Spei- cherplatzes in das Datenregister der CPU eingelesen. Im Datenregister steht also nun der Operand des ersten Befehls, nämlich 00001011.

Der Inhalt des Datenregisters wird in den Akkumulator einge- lesen.

1.2 Einführung in die Programmierung 15

Bei dem Befehl LDA 11 (86 OB) ist die Adresse des Operanden einfach zu erhalten: Der Inhalt des Programmzählers wird um 1 erhöht. Nicht immer ist die Bildung der Adresse so einfach. Oft muß die Operandenadresse erst berechnet werden.

Arıthmetisch-logische Einheit

ER

in _ Datenregister re Befehis- Be

Programmzähl er

a

Adressenregister Adressen-Bus [0T0[0]0[0]0[0] 1]

I

Adresse |Mnemonics

Takt

Daten -Bus Steuer -Bus

hexadez. _binär

00000001 00000010

0)

0000 101 00000 101

00000110

00001000 00001001

Bild 1.7.b Ausführen des ersten Befehls

c) Holen des zweiten Befehls

Anhand von Bild 1.7.c soll die Holphase des zweiten Befehls erklärt werden.

Der Inhalt des Programmzählers wird in das Adressenregister geschrieben. Damit liegt die Adresse des Opcodes auf dem Adressen-Bus.

(2) Der Inhalt des Programmzählers wird um 1 erhöht.

16 1 Einführung in die Struktur und Arbeitsweise eines Mikroprozessorsystems

Über den Daten-Bus wird der Inhalt des ausgewählten Spei- cherplatzes in das Datenregister eingelesen,

Der Inhalt des Datenregisters gelangt in den Befehlsdecodie- rer und wird dort decodiert. Daraufhin bildet das Steuer- werk die dem Additionsbefehl entsprechenden Impulse.

E Arithmetisch-logische Einheit E I [1lololol1lofili]

Steuerwerk ADD

Programmzähler, Sl Adressenregister Adressen-Bus h [6T0ToToToToTı Jo] CH soniner_ |

Adresse hexadez. _binär 0] [00000000] | 10000110 |

00000010 10001011 00000011

BEE

Takt

Daten -Bus Steuer -Bus

00000 101

00001001

[00111110] ee er] Lass] Er Burn BERBREESEER Bild 1.7.c Holen des zweiten Befehls

d) Ausführen des zweiten Befehls Bild 1.7.d zeigt das Ausführen des zweiten Befehls.

Der Inhalt des Programmzählers wird in das Adressenregister geschrieben. Damit liegt die Adresse des Operanden auf dem

Adressen-Bus.

1.2 Einführung in die Programmierung 17

OO @OOd

Takt

Der Inhalt des Programmzählers wird um 1 erhöht. Über den Daten-Bus gelangt der Operand in das Datenregister.

Das Datenregister legt den Operanden an den einen Eingang der ALU.

Der Akkumulator legt den anderen Operanden (vom vorhergehen- den Befehl!) an den anderen Eingang der ALU.

Die ALU führt die Addition aus und lädt anschließend die Summe in den Akkumulator. Dabei wird der vorige Inhalt (also der eine Summand) zerstört.

Daten -Bus

Bild

00 BE 0 Adressen-Bus [ofoJoJoloJol:]1] en

Programmzähler;

Steuer -Bus

Adresse hexadez. _binär

00000000)

[0000 1001

1.7.d Ausführen des zweiten Befehls

18 1 Einführung in die Struktur und Arbeitsweise eines Mikroprozessorsystems

e) Holen und Ausführen des dritten Befehls

Nachdem die Summe berechnet ist und im Akkumulator steht, hat der Rechner seine Aufgabe getan. Er hält aber nun nicht von allein an, sondern er muß durch den HALT-Befehl gestoppt werden. Wie diese Phase abläuft, zeigt Bild 1.7.e,

Die Holphase läuft genau so ab wie in den vorhergehenden Fällen. Nachdem der Opcode decodiert ist, werden durch das Steuerwerk die dem Haltsignal entsprechenden Steuersignale gebildet und damit die Ausführungsphase eingeleitet. Diese ist hier besonders ein- fach: Alle Operationen werden gestoppt. Das geht einfach da- durch, daß das Steuerwerk keine Signale mehr produziert.

Arithmetisch-logische Einheit a es

Datenregister ©

Steuerwerk Fr sy ei Adressenregister [o[oloTolo] 1loJo]

| spruch |

EN

Takt

Daten -Bus Steuer -Bus

IMnemonics

10000110 000010119

10001011 00000011 ER ed = 60001000 oooona) L____ |

Bild 1.7.e Der Halt-Befehl

2 Der Mikroprozessor 6809

2.1 Mikroprozessorsystem 6809

2.1.1 Entwurfsphilosophie

Der Ein-Chip-Mikroprozessor 6809 ist die neueste Entwicklung innerhalb der 8-Bit-Mikroprozessorfamilie. Er ist aus dem 6800 entstanden - neben dem 8080 von Intel einem der Großväter der Mikroprozessoren. Hinsichtlich seiner Architektur und seines Befehlsvorrats ist er eine Weiterentwicklung des 6800, die in bezug auf Leistungsfähigkeit beträchtlich über diesem liegt. Beim Entwurf des Chips hatten die Entwicklungsingenieure bei Motorola zwei Ziele im Auge. Zum einen sollten für die Anwender des 6800 die Kosten und Mühen bei der Umstellung auf einen moder- nen Prozessor so gering wie möglich gehalten werden, zum anderen sollte der neue Prozessor Leistungen vorweisen, die an die 16- Bit-Prozessoren wie 68000, 8086 oder Z8000 heranreichen. Alle Entwickler, die die Kosten einer Umstellung auf 16-Bit-Rechner scheuen, finden im 6809 ein Chip mit großer Leistungsfähigkeit und hoher Flexibilität, das für viele Anwendungen, vor allem in der Prozeßrechentechnik und Systemtechnik völlig ausreichend ist. Und dies alles bei einem erstaunlich niedrigen Preis.

Der Befehlsvorrat des 6800 ist von den Mnemonics (source code) her gesehen zum Befehlsvorrat des 6809 aufwärts kompatibel. Das heißt, ein 6800-Quellenprogramm kann von einem 6809-Assembler assembliert werden und dann vom 6809 ausgeführt werden. Auf der Ebene des Objektcodes (Maschinencodes) herrscht keine Kompatibi- lität.

Der 6809 weist gegenüber dem 6800 einige neue Befehle auf, wie z.B. - Verschiebung (transfer) zwischen allen internen Registern - Austausch (exchange) von Registerinhalten untereinander - 16-Bit-Arithmetik - 16-Bit-Stackhandling

20 2 Der Mikroprozessor 6809

Die Anzahl der Befehle ist aber nur ein Kriterium bei der Beurteilung der Leistungsfähigkeit eines Mikroprozessors. Weit wichtiger ist die Frage nach der Flexibilität - auf wieviele verschiedene Arten kann ein Prozessorbefehl ein Datenwort behan- deln? Nun, je mehr Adressierungsarten