Der einzige Befehl, den unser erstes Programm ausführte, war offenbar
ein Ladebefehl.
Es ist davon auszugehen, daß er nicht der einzige ist; tatsächlich
beherrscht selbst unser einfacher VNR bereits mehrere verschiedene Ladebefehle.
Deren Notwendigkeit ist leicht einzusehen: LDA absol. eignet sich
gut, um den Akkumulator mit einem Wert zu initialisieren, aber er überträgt
nur mittelbar einen Wert aus dem RAM (als Anteil des Befehlswortes nämlich).
Mindestens ein Befehl, um im RAM stehende Wörter (z.B. Variablen)
direkt in den Akkumulator zu übertragen, ist noch nötig.
Nach 2.2 Verfahren bei dem Rechnerbetrieb wissen wir, daß mit den Lade- semantisch die Speicherbefehle verbunden sind. Diese werden hier gleich mitvorgestellt.
Das Applet auf der folgenden Seite führt mit einem Beispielprogramm alle Lade-/Speicherbefehle des VNR vor. Ganz unten auf dieser Seite steht im Detail erklärt, was das Beispielprogramm tut. Wer sich überraschen lassen will, sollte nur noch die folgenden zwei Hinweise lesen und kann dann umblättern.
Achtung, es folgt die detaillierte Beschreibung des Programmes für den VNR auf der nächsten Seite:
Das Programm lädt zunächst den Akku nacheinander mit den Werten 4, 6 und 9. Dabei kommt die "1" wie gehabt aus dem Befehlswort eines LDA absol., die 6 und 9 aber werden von den beiden anderen load-Varianten (LDA mem und LDA mem indir.), die dieser VNR kennt, aus dem RAM geholt (von den Adressen 18 und 19 hexadezimal in der vierten Zeile des RAMs). Der dritte Ladebefehl benötigt dazu sogar noch einen "Zwischenwert" von der Adresse 10 hexadezimal. Die 9, die sich nach dem dritten load im Akku befindet, soll nun an 1a und 1b gespeichert werden, wozu die beiden store-Varianten dienen. STA absol. enthält direkt im Befehlswort die benötigte Adressangabe 1a, STA mem muß diese erst aus dem RAM holen (von Adresse 11).
Es folgen drei NOP-Befehle um die erste Zeile des Speichers zu füllen und als Trennung zum zweiten Teil des Programmes. Wie der Name (No OPeration) schon sagt, bewirkt ein NOP gar nichts, schadet aber auf jeden Fall auch nicht, anders als wenn der Standardwert der drei RAM-Zellen nicht überschrieben worden wäre.
Im zweiten Teil des Programmes folgen in gleicher Reihenfolge wieder alle fünf Befehle, dieses Mal aber alle mit dem gleichen Argument (27 hexadezimal). Man beachte das trotzdem völlig unterschiedliche Verhalten!
Es folgen wieder drei NOP-Befehle, als Warnung, rechtzeitig mit der Simulation aufzuhören, bevor der VNR Daten als Befehle interpretiert.
Carsten Kelling 1996 (); letzte Änderung: 21. Februar 1997 |