Experimente
Daten und Programm eingeben und ausführen
Ein Rechner verarbeitet Daten, die letztlich binär repräsentiert sind und - je nach Kontext - unterschiedlichste Objekte darstellen können.
In unserem Modellrechner gehen wir davon aus, dass natürliche Zahlen verarbeitet werden. Diese Zahlen können in einem Datenspeicher abgelegt werden. Vorerst verzichten wir auf eine binäre Repräsentation der Zahlen.
Mit dem Bonsai-Simulationsprogramm kann man direkt die Abarbeitung von Programmen verfolgen.
Im Programmfenster ist bereits ein Programm vorgegeben. Was die einzelnen Befehle bewirken, wird in den weiteren Aufgaben systematisch erkundet.
Im Datenfenster werden die zu verarbeitenden Daten (in durchnummerierte Register) eingegeben. Jede Zeile entspricht dabei einem Register.
Aufgabe 1 - Programm ausführen
Hier geht es erst einmal darum, die Ausführung solcher Programme zu erproben.
- Führe das Programm mit dem Button Schritt für Schritt aus und beobachte die Veränderungen im Programm- und Datenfenster.
- Brich die Ausführung des Programms mit dem Button ab. Gib neue Daten im Datenfenster ein (z.B.: R0: 9; R1: 5). Führe das Programm jetzt mit geringer Geschwindigkeit automatisiert aus. Benutze hierzu den Button Führe das Programm anschließend mehrfach mit unterschiedlichen Daten mit hoher Geschwindigkeit automatisiert aus. Kannst du aus den Ergebnissen erschließen, was das Programm leistet?
Erkundung der Rechenbefehle
Der Bonsai-Rechner kann nur allereinfachste Rechenoperationen ausführen.
Aufgabe 2 - inc und dec
-
In Aufgabe 1 hast du bereits die Befehle
inc
unddec
benutzt. Hast du schon herausgefunden, was sie leisten? - Gib neue Daten in die Register ein, z.B. R0: 2; R1: 3. Gib eine Befehlsfolge ein, mit der das Register R1 vollständig heruntergezählt wird und Register R0 entsprechend hochgezählt wird.
-
Probiere aus was passiert, wenn man den
dec
-Befehl auf ein Register mit dem Inhalt 0 anwendet.
Erkundung der Kontrollbefehle
Zur Automatisierung von Berechnungen benötigt man Befehle, mit denen man die Abfolge der Verarbeitung kontrolliert steuern kann. So möchte man Schleifen und Fallunterscheidungen bilden und eine Berechnung kontrolliert beenden. Finde selbst heraus, wie das in der Bonsai-Assemblersprache realisiert wird.
Aufgabe 3 - hlt
Gib folgendes Programm mit sinnvollen Daten ein. Was bewirkt der hlt
-Befehl?
0 inc 3
1 inc 3
2 hlt
3 dec 3
4 dec 3
Aufgabe 4 - jmp
Gib folgendes Programm mit beliebigen Daten ein. Beschreibe, was der jmp
-Befehl bewirkt.
0 jmp 3
1
2
3 jmp 0
jmp steht für jump - springe. Wer springt hier wohin?
Schreibe und teste ein Programm, das von 0 nach 7, von 7 nach 5 und von 5 wieder nach 0 springt.
Aufgabe 5 - tst
tst steht für test - prüfe, untersuche. Was soll auf welche Eigenschaft untersucht werden? Welche Folgen soll das Untersuchungsergebnis haben? Gib zur Klärung das folgende Programm ein:
0 tst 5
1 jmp 3
2 jmp 4
3 hlt
4 hlt
Setze das Datenregister R5 einmal auf 0 und einmal auf eine Zahl ungleich 0 und führe jeweils das Programm durch.
Beschreibe, was der tst
-Befehl leistet.