Die Entwicklung von Software setzt eine Hardware einer definierten Struktur voraus.
Diese Struktur hat sich im Laufe der Jahre gewandelt, hat aber die grundlegenden
Elemente beibehalten.
Diese Hardwarestruktur bestimmt weitgehend die Konstruktion von Compilern und auch
die Programmbefehle und ihre Abarbeitung.
Elemente eines Mikrocomputers
Der hier dargestellte Mikrocomputer besteht aus den folgenden Bausteinen:
Der Mikroprozessor, die Speicher und die Ein-/Ausgabebaugruppen sind über drei
Busse (Bussysteme) miteinander verbunden:
Wie viele Adressleitungen werden benötigt?
Bestimmung der benötigten Adressleitungen für eine vorgegebene Speichergröße:
SG = Speichergröße (dezimal)
n = Anzahl der Adressleitungen
2 = Basis des binären Zahlensystems
SG = 2n
Durch Logarithmieren kann die Gleichung nach n umgestellt werden:
log SG = n * log 2
log SG
n = -------------
log 2
Die Struktur des IBM-PC
In dieser Grafik ist die Struktur der ersten IBM-PC dargestellt. Diese PC
konnten nur 1MByte Arbeitsspeicher adressieren.
1 MByte entspricht 1024 * 1 KByte. 1 KByte entspricht 1024 Byte.
Das Herz der Mutterplatine (Motherboard) ist der Mikroprozessor. Hier kam der
8086 oder der 8088 von Intel zum Einsatz. Beide Prozessoren sind
16-Bit-Prozessoren, doch der 8088 arbeitet im Unterschied zum 8086 mit einem
externen 8-Bit-Datenbus.
Der 8086/88-Prozessor kann 1 Mbyte Speicher (das sind 1048576 Speicherzellen)
adressieren.
Ein Auszug aus der Bestückung eines Mainboards mit AMD-ATHLON-Prozessor (August 2000)
Das Strukturbild zeigt die Erweiterungen gegenüber der ürsprünglichen IPM PC-Struktur.
Programmierung
Die wesentlichen Funktionen eines jeden Prozessors werden mit Hilfe seiner
Register ermöglicht. Daten werden aus dem Speicher in Register geladen,
dort mit Hilfe von Maschinensprachebefehlen verarbeitet und anschließend
wieder in den Speicher zurückgeschrieben.
Die Registerstruktur ist bis zu den modernen Prozessoren erhalten geblieben.
Allerdings sind ab dem 80386 die allgemeinen Register auf
32 Bit erweitert worden. Weiterhin sind Register für den Protected Mode
hinzugekommen.
Die Allzweckregister
Die acht Allzweckregister des 8086-Prozessors (alle 16 Bit breit) sind in den meisten Befehlen sowohl als Ursprungsregister als auch als Zielregister für Berechnungen und Datenübertragungen sowie als Zeiger für Adressbereiche und als Zähler beteiligt. Jedes dieser Allzweckregister kann einen 16-Bit-Wert aufnehmen, kann mit dem Inhalt einer Speicherstelle geladen werden und den Inhalt des Registers im Speicher ablegen, sowie in arithmetischen und logischen Operationen eingesetzt werden.
Beispiel
Zeile | Befehl |
1 | mov ax, 5 |
2 | mov dx, 9 |
3 | add ax, dx |
1 | Lade das ax-Register mit dem Wert 5 |
2 | Lade das dx-Register mit dem Wert 9 |
3 | Addiere den Inhalt der beiden Register. Das Ergebnis befindet sich dann wieder im ax-Register (Akkumulator) |
Weitere Beispiele für die Programmierung in Assembler finden Sie in der
herunterladbaren .pdf-Datei.
Assemblerprogramme werden in der Anwendungsprogrammierung nur in seltenen
Fällen entwickelt, weil man die Funktionen des Mikroprozessors
schon sehr genau kennen muss, um schnelle und sparsame Programme zu entwickeln.
Das verlangt eine hohe Konzentration auf die Maschine und man kann dabei leicht
die Problemlösung aus den Augen verlieren.
Zurück zur Seite Programmieren