Inhaltsverzeichnis
Maschinensprache (Assembler)
Wir lernen im Folgenden eine Programmiersprache, die sehr ähnlich ist zur Maschinensprache realer Prozessoren. Die Befehle dieser Sprache sind als Abfolge von Byte-Werten im Arbeitsspeicher des Rechners abgelegt. Da es für uns Menschen recht mühselig ist, auswendigzulernen dass z.B. die Zahl 276 bedeutet "Lade den Wert der nachfolgenden Speicherstelle", schreiben wir Maschinensprachebefehle nicht als Zahl, sondern als sogenannte Opcodes. Der Opcode für 276 ist beispielsweise "LOAD".
Wir brauchen dann einen Compiler, der die mit Opcodes notierten Programme in die Zahlenfolgen übersetzt, die der Prozessor versteht. Solche Compiler nennt man Assembler. Die mithilfe von Opcodes notierten Programme nennt man Assemblerprogramme, zu einer Assemblersprache sagt man umgangssprachlich auch kurz "Assembler".
Hier ein Beispielprogramm:
| Assemblerbefehl (Opcode mit Operanden) | Werte im Arbeitsspeicher | Bedeutung |
|---|---|---|
| LOAD 100 | 276 100 | Lade den Wert der Speicherzelle 100 in den Akkumulator |
| ADD 101 | 266 101 | Addiere den Wert der Speicherzelle 101 zum Akkumulator |
| STORE 102 | 277 102 | Schreibe eine Kopie des Akkumulatorwertes in die Speicherzelle 102 |
| HOLD | 99 | Stoppe den Prozessor |
Für die Zahldarstellung der Befehle werden wir uns im Folgenden nicht mehr interessieren.
⇒ Nicht auswendiglernen!
Die Minimaschine
Wir arbeiten im Folgenden mit einem Simulator einer Registermaschine, der Minimaschine.
Hier finden Sie den Downloadlink und auch die Dokumentation dazu.
Hier der Deeplink zur Dokumentation der Assemblersprache der Minimaschine.
Die wichtigsten Befehle
| Assemblerbefehl (Opcode mit Beispiel-Operanden) | Bedeutung |
|---|---|
| LOAD 100 | Lade den Wert der Speicherzelle 100 in den Akkumulator |
| LOADI 5 | Lädt den Wert 5 in den Akkumulator ("Load immediate") |
| STORE 102 | Schreibe eine Kopie des Akkumulatorwertes in die Speicherzelle 102 |
| ADD 101 | Addiere den Wert der Speicherzelle 101 zum Akkumulator |
| HOLD | Stoppe den Prozessor |
