Benutzer-Werkzeuge

Webseiten-Werkzeuge


rechner:assembler:start

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 ArbeitsspeicherBedeutung
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
rechner/assembler/start.txt · Zuletzt geändert: von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki