Lernpfad Know-How-Computer/KHC-Maschinensprache - erste Schritte Teil 1
inc x und stp kennen und schreibst damit dein erstes Programm.Erstes Programmbeispiel "x plus 2"
Was soll das Programm tun?
Das Programm "x plus 2" soll den Wert in der Speicherzelle Nr. 4 um den Wert 2 erhöhen. Wenn also zu Beginn in der Speicherzelle 4 der Wert 0 steht, dann soll dort nach Ausführung des Programms der Wert 2 stehen.
inc ist eine Abkürzung für "increment", auf Deutsch: hochzählen.Programm schreiben
Lege auf einem Blatt Papier eine Hauptspeichertabelle mit zwei Spalten an. Vier Zeilen für vier Speicherzellen reichen erst mal aus. Achte darauf, dass die Zeilen groß genug werden, so dass bei Bedarf auch ein paar Streichhölzer hineinpassen. Beschrifte die Zeilen in der vorderen Spalte mit den Adressen 1, 2 usw. Schreibe in die ersten beiden Zellen in die zweite Spalte jeweils den Befehl inc 4. Die restlichen Zellen bleiben erst mal leer. Den Stift legst du so auf das Blatt, dass er auf die oberste Zeile, also auf die Zelle mit der Adresse 1 zeigt.
==> 1: inc 4
2: inc 4
3: 0
4: 0
Programm ausführen
1. Schritt
Zu Beginn steht der Programmzähler immer auf dem Wert 1, d.h. der Stift zeigt auf die Zelle mit der Adresse 1. Da in dieser Zelle der Befehl inc 4 steht, wird der bisherige Wert 0 in Speicherzelle 4 um 1 erhöht. Du legst also ein Streichholz in die bisher leere Zelle Nr. 4. Außerdem wird der Programmzähler um 1 erhöht, enthält jetzt also die Adresse 2. Du legst daher den Stift so, dass er nun auf die Adresse 2 zeigt. Hier steht in diesem Fall noch mal der Befehl inc 4. Nach dem 1. Schritt sieht das Ganze also so aus:
1: inc 4
==> 2: inc 4
3: 0
4: 1
2. Schritt
Die Zahl 1 in Speicherzelle 4 wird noch mal um 1 erhöht, also auf den Wert 2. Außerdem wird der Programmzähler auch wieder um 1 erhöht, enthält jetzt also die Adresse 3. Hier das Ergebnis:
1: inc 4
2: inc 4
==> 3: 0
4: 2
3. Schritt
Eigentlich sieht es so aus, als hätten wir das Ziel erreicht, denn in der Speicherzelle 4 wurde ja tatsächlich der ursprüngliche Wert 0 um 2 erhöht. Aber es gibt ein Problem!
Der Computer arbeitet, nachdem die Ausführung eines Programms einmal von Außen angestoßen wurde, grundsätzlich stur nach der Devise: "Immer den nächsten Befehl ausführen, auf den der Programmzähler zeigt." Allerdings enthält in unserem Programm die Zelle Nr. 3, auf die der Programmzähler jetzt zeigt, gar keinen ausführbaren Befehl! Bei einem echten Computer führt so etwas zu einem so genannten Laufzeitfehler, im schlimmsten Fall stürzt der Computer sogar ab.
Das Programm besitzt also noch den Schönheitsfehler, dass es nicht von sich aus zum richtigen Zeitpunkt anhält. Dies können wir aber leicht korrigieren, indem wir in Speicherzelle 3 den Befehl stp (für Stop) hinzufügen.
Die korrekte Version unseres ersten Programms sieht dann so aus:
1: inc 4 2: inc 4 3: stp 4: 0
Wenn wir jetzt das Programm ab Adresse 1 neu starten und schrittweise ausführen, wird mit den ersten beiden Befehlen der Wert in Zelle 4 wieder um 2 erhöht. Im 3. Schritt wird das Programm jetzt aber mit stp sauber beendet, denn der Befehl stp befiehlt dem Computer, dass er mit der Programmausführung aufhören soll.
Der KHC-Emulator
In diesem Lernpfad steht dir ein Programm zur Verfügung, das die Papierversion des Know-How-Computers im Browserfenster nachbildet. Es heißt KHC-Emulator (emulieren = nachbilden). Am Beispiel unseres ersten Programms "x plus 2" kannst du den Emulator jetzt gleich mal ausprobieren.
