Mikroprozessor-Programmierung:Befehle an einen Modell-Mikrocomputer

14.09.1979

MÜNCHEN - Abbildung 1 zeigt einen Mikrocomputer in vereinfachter Darstellung.

Er entspricht keinem handelsüblichen Gerät, sondern soll als Modell die allgemeinen Eigenschaften beschreiben.

Abbildung 2 zeigt die Befehlsliste. Für die Befehle wurde eine Kurzbezeichnung eingeführt, zum Beispiel ADD für die Addition. Ein X in der Spalte Bedingungen zeigt an, daß der Befehl die Bits des Bedingungsregisters beeinflußt.

In der Spalte Zyklen steht die Zahl der für die Ausführung benötigten Takte, die eine Berechnung der Ausführungszeit des Programms erlauben. Bei den bedingten Sprüngen steht links der Wert für den Fall, daß nicht gesprungen wird und rechts der Wert für den Fall des Sprunges. Bei einer angenommenen Zykluszeit von 1 Ás (Takt 1 MHz) würde also die Ausführung des Additionsbefehls 4 Zyklen, also 4 Ás dauern.

Neben den 16 Programmbefehlen, gibt es zwei Signale, die den Programmablauf beeinflussen. Eine logische 1 auf der Leitung RESET veranlaßt, daß das Programm nach Beendigung des laufenden Befehls unterbrochen wird und der Inhalt der Speicherstellen 1111 1110 und 1111 1111 als Startadresse in das Befehlszählregister geladen wird. Eine logische 1 auf der Leitung INTERRUPT unterbricht das Programm nach Beendigung des laufenden Befehls rettet den Befehlszählerstand in die Speicherstellen 0111 1111 und 0111 1110 und lädt den Inhalt der Speicherstellen 1111 1100 und 1111 1101 als neue Befehlsadresse in den Befehlszähler.

Die meisten ausgeführten Mikroprozessoren kennen noch zwei Erweiterungen in der Adreßbehandlung, das Indexregister und das Stapel-Adreßregister (Stackpointer). Das Indexregister gestattet die Berechnung von Datenadressen durch Laden, Addieren und Subtrahieren. Das Stapel-Adreßregister enthält die laufende Adresse eines besonderen Speicherbereiches, der Adressen und Daten stapelt. Wie bei einem Spielkartenstapel kann man Daten oben auf den Stapel legen und von oben wieder entfernen. Auch für diesen Modell-Mikrocomputer wäre es sinnvoll, die Rücksprungadresse beim Unterprogrammsprung und beim Interrupt in solch einem Stapel abzulegen, da für den Fall eines Interrupts in einem Unterprogramm oder bei geschachtelten Unterprogrammaufrufen mehrere Rücksprungadressen gespeichert werden müssen.

Der acht Bit breite Adreßbus erlaubt also die Adressierung von 2(8) = 256 Speicherwörtern. Abbildung 3 zeigt den Adreßplan.

*Dipl.-lng. Günter Schmitt ist Fachhochschullehrer bei der Fachhochschule der Deutschen Bundespost in Dieburg. Der abgedruckte Beitrag ist ein Auszug aus seinem Werk "Maschinenorientierte Programmierung für Mikroprozessoren", das kürzlich im R. Oldenbourg Verlag, München/Wien, erschienen ist.