i

Organisation des Speichers

Codierung der Befehle

Im Speicher können nur durch Murmeln dargestellte Zahlen abgelegt werden. Befehle können also nicht direkt als Zeichenketten wie z.B. INC 4 gespeichert werden. Es bietet sich an, die Befehle mit Hilfe von Zahlen zu codieren.

Die Entscheidung für eine Codierung ist willkürlich. Wir legen fest:

Codierung der Befehle

Darstellung der Parameter

Aber wie soll mit den Parametern verfahren werden? Der Befehl INC benötigt als Parameter noch die Angabe, welche Speicherzelle erhöht werden soll, z.B. INC 4. Würde man zu der Murmel für INC nun einfach die vier Murmeln für die zu erhöhende Speicherzelle geben, so wären insgesamt fünf Murmeln im Gefäß - und nicht mehr zu unterscheiden vom Befehl HLT.

Verwendet man verschiedenfarbige Murmeln, kann man Befehle und Parameter unterscheiden. Auch die Festlegung der Farbe ist willkürlich, hier wählen wir rote Murmeln für Parameter und grüne Kugeln für Befehle.

Befehl und Parameter

Programm und Daten gemeinsam in einem Speicher

Es gibt viele Möglichkeiten, wie Programm und Daten im Speicher angeordnet werden können. Die Festlegung erfolgt wieder einmal willkürlich: Damit der Programmlauf immer in einem festen Speichergefäß beginnt, soll das Programm an den Anfang des Speichers gelegt werden, d.h. die erste Programmzeile liegt im ersten Speichergefäß. Die folgenden Speichergefäße stehen dann für Daten zur Verfügung.

Programm und Daten

Beachte, dass die Parameter der Befehle sich auf Daten-Speichergefäße beziehen. Bei einem gegebenen Programm müssen eventuell die Adressen abgeändert werden.

Betrachte als Beispiel das Programm

0 tst 1
1 jmp 3
2 jmp 6
3 dec 1
4 inc 0
5 jmp 0
6 hlt

und die folgende Speicherbelegung:

0: 3
1: 2

Wenn das Programm in codierter Form im Speicher abgelegt werden soll, müssen Daten in andere Speichergefäße abgelegt und infolgedessen Adressen verschoben werden:

0: 40008
1: 30003
2: 30006
3: 20008
4: 10007
5: 30000
6: 50000
7:     3
8:     2

Aufgabe 1

Welche anderen Anordnungen von Programm und Daten kannst Du Dir vorstellen? Welche Vor- und Nachteile ergeben sich daraus - auch für die Ausführung des Programms?

Aufgabe 2

Gegeben ist das Murmelprogramm

0 tst 0
1 jmp 3
2 jmp 9
3 tst 1
4 jmp 6
5 jmp 9
6 dec 0
7 dec 1
8 jmp 0
9 hlt

und die folgende Speicherbelegung:

0: 2
1: 4

Wie muss der Speicher belegt werden, wenn Programm und Daten nach den oben beschriebenen Vorgaben im Speicher vorliegen sollen?

Suche

v
7.2.2.2.2
www.inf-schule.de/rechner/bonsai/murmelrechner/universellermurmelrechner/speicherorga
www.inf-schule.de/7.2.2.2.2

Rückmeldung geben