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.

  1. Führe das Programm mit dem Button Schritt-Symbol Schritt für Schritt aus und beobachte die Veränderungen im Programm- und Datenfenster.
  2. Initialisiere die Programmausführung mit dem Button Initialisieren-Symbol. Gibt 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 Ausführen-Symbol. 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?
  3. Speichere Programm und Daten in einer Datei z.B. mit dem Namen test.bon ab. Schaue dir den Quelltext dieser Datei an. Ändere ihn geringfügig ab und lade ihn in den Bonsai-Simulator.

Erkundung der Rechenbefehle

Der Bonsai-Rechner kann nur allereinfachste Rechenoperationen ausführen.

Aufgabe 2 - inc und dec

  1. In Aufgabe 1 hast du bereits die Befehle inc und dec benutzt. Hast du schon herausgefunden, was sie leisten?
  2. 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.
  3. 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.

Schreibe und teste ein Programm, das das Datenregister R3 auf 0 herunterzählt und dann anhält.
X

Fehler melden

X

Suche