Kurzinfos,   Spezifikationen des neuen Demo-Relaiscomputers |
Aufbau:
Kernstück der Maschine ist, wie bei dem großen Relaisrechner, der Addierer,
der hier zusätzlich auch subtrahieren kann. Es gibt als Speicher ein Eingaberegister, einen
Zwischenspeicher, sowie einen Akkumulator. Der Akkumulator ist "fest" mit dem
Addierer verknüpft, so daß man immer nur zum Akkumulatorinhalt addieren, bzw. vom
Akkumulatorinhalt subtrahieren kann. Addieren kann man das Eingaberegister sowie
den Zwischenspeicher, subtrahieren kann man nur den Zwischenspeicher. Der Akkuinhalt lässt
sich in den Zwischenspeicher ablegen.
Der Zwischenspeicher ist über einen "Schieber" mit dem Eingang des Addierers verbunden. Es gibt einen Befehl, mit dem man sequentiell diese Datenleitungen verschieben kann, und somit nach links veschobene Binärzahlen vom Zwischenspeicher in den Addierer leiten kann. Gibt man den Befehl "schieben" 4mal, so befindet sich der Schieber wieder im Ausgangszustand. Der Inhalt des Zwischenspeichers wird hierbei nicht beeinflußt. (es ist kein Schieberegister!) Außerdem wird bei diesem Schieber jeweils ein Bit des Eingaberegisters ausgewählt, und als Kondition bereitestellt. Befehle können mit einem Konditionsbit ausgestattet werden, was die Maschine dazu veranlasst, den Befehl nur dann auszuführen, wenn das durch den Schieber indirekt ausgewählte Bit im Eingaberegister den Wert 1 hat. Dies ist für die Multiplikation von Bedeutung.
Befehlssatz:
000 Akku löschen
001 Eingaberegister löschen
010 Eingaberegister zum Akku addieren
011 Zwischenspeicher zum Akku addieren
100 Zwischenspeicher vom Akku subtrahieren
101 "Schieben"
110 Akku im Zwischenspeicher ablegen
111 Programmstop
Programmbeispiel: Multiplikation
Zeile | Code | Aktion | Erläuterungen |
---|---|---|---|
Zahl eins in Eingaberegister! | |||
1 | 0000 | Akku löschen | |
2 | 0010 | Eingaberegister addieren | Zahl 1 ist jetzt im Akku |
3 | 0110 | In Zwischenspeicher speichern | Zahl 1 ist jetzt im Zwischenspeicher |
4 | 0001 | Eingaberegister löschen | |
5 | 0000 | Akku löschen | |
6 | 0111 | Programmstop | |
- Zahl zwei in Eingaberegister | |||
7 | 1011 | Konditionell Zwischenspeicher addieren | nur, wenn Bit 1 des Eingaberegisters 1 ist |
8 | 0101 | Schieben | |
9 | 1011 | Konditionell Zwischenspeicher addieren | Zwischenspeicher ist um 1 nach links verschoben Ausführung nur, wenn Bit 2 des Eingaberegisters 1 ist |
10 | 0101 | Schieben | |
11 | 1011 | Konditionell Zwischenspeicher addieren | Zwischenspeicher ist um 2 nach links verschoben Ausführung nur, wenn Bit 3 des Eingaberegisters 1 ist |
12 | 0101 | Schieben | |
13 | 1011 | Konditionell Zwischenspeicher addieren | Zwischenspeicher ist um 3 nach links verschoben Ausführung nur, wenn Bit 4 des Eingaberegisters 1 ist |
14 | 0101 | Schieben | Schieber wieder in Ausgangsposition |
15 | 0001 | Eingaberegister löschen | |
16 | 0111 | Programmstop | |
Ergebnis ist im Akku! |