HSG |
|
Kann man sich unter einem Assembler-Befehl im Allgemeinen noch etwas vorstellen, so stellt sich ein Maschinenbefehl als eine Zahl dar. Gewöhnlich besteht ein Maschinenbefehl aus einer Bitfolge. Eine dezimale Kodierung ist aber zunächst etwas übersichtlicher, zumal für eine Simulation eine binäre Kodierung noch entbehrlich ist.
Ein Bonsai-Assembler-Befehl setzt sich aus einem Operationsteil und einem Adressteil zusammen:
Die Adressangabe bezieht sich bei
Auch ein Maschinenbefehl besteht aus Operationscode und Adresscode.
Die Operation - der Befehl - soll folgendermaßen in einem dezimalen Code dargestellt werden:
inc ... | -> | 1 ... |
dec ... | -> | 2 ... |
jmp ... | -> | 3 ... |
tst ... | -> | 4 ... |
hlt ... | -> | 5 ... |
Programm- und Datenspeicher werden nun in einem Speicher vereinigt (von-Neumann-Prinzip). Die Anfangsadresse dieses Speichers ist willkürlich, man wird sie den Hardware-Gepflogenheiten folgend auf Null setzen. Das Programm kann nun irgendwo im Speicher liegen, wir lassen es gleich bei Null beginnen. Die Daten ( die Lage des 'Datensegments' (DOS) ist ebenfalls willkürlich) kann man an den Programmteil anhängen, im Folgenden ist zur optischen Trennung eine Speicherzelle freigelassen.
Die beschriebene dezimale Kodierung wird im BONSAI-Simulations-Programm beim Assemblieren automatisch durchgeführt.
Eine Übersetzung in Maschinensprache hat wenig Sinn, wenn keine Maschine zur Verfügung steht, die diese Sprache "spricht". Das Bonsai-Simulations-Programm stellt mit der "CPU-Ebene" eine solche "Maschine" dar.
Lasse diese Maschine nun arbeiten: