Der Von - Neumann - Rechner

 



Bitte bei negativen Zahlen keine Leertaste zwischen Minus und Zahl!

Befehle: ohne Operanden: Befehle mit Operand:

END beendet das Programm
NUL löscht den Inhalt des Akkumulators
INC erhöht den Inhalt des Akkumulators um 1
DEC erniedrigt den Inhalt des Akkumulators um 1
STX speichert den Akkuinhalt im Indexregister
LDX lädt den Inhalt des Indexregisters in den Akku
INX erhöht den Inhalt des Indexregisters um 1
DEX erniedrigt den Inhalt des Indexregisters um 1
LSH schiebt Bits nach links (Verdoppeln)
RSH schiebt Bits nach rechts (Halbieren)
RTS Rücksprung von der Subroutine

LDA #20 Lade die Zahl 20 unmittelbar in den Akku
LDA 11 Lade die Zahl aus Speicheradresse 11 in den Akku
STA 04 Speichere den Akkuinhalt in Speicheradresse 04
ADD 12 Addiere zum Akkuinhalt die Zahl aus Speicher 12
SUB 14 Subtrahiere vom Akkuinhalt die Zahl aus Speicher 14
MUL 10 Multipliziere den Akku mit Speicher 10
DIV 07 Dividiere den Akkuinhalt durch Speicher 07
JMP 15 Springe zur Speicherstelle 15
JAZ 19 Springe zu 19, falls Akku 0 (Zero) ist
JAN 18 Springe zu 18, falls Akku negativ ist
JXP 17 Springe zu 17, falls das Indexregister positiv ist
JSR 20 Springe zu Speicher 20 als Unterprogramm (Subroutine)
LAI 10 Lade in Akku die Zahl, die in dem Speicher steht,
              der in Speicheradresse 10 angegeben ist. (indirekt)
SAI 10 Speichere den Akku in die Speicheradresse, die in
              Speicher 10 angegeben ist. (indirekt)
AND 97 Die Bits des Akkuinhalts UND die Bits von Speicher 97
OR 97 Die Bits des Akkus ODER die Bits von Speicher 97
NOT 97 Die Bits von Speicher 97 werden im Akku invertiert.
XOR 98 Die Bits von Speicher 98 werden zu den Akkubits
              addiert ohne übertrag.

NEU! Bei LDA ist nun auch die unmittelbare Adressierung mÖglich. Setzt man vor den Operanden ein "#", wird die Zahl unmittelbar in den Akku geladen.

In den Speicherzellen von 0 bis 96 sind Zahlen von -32767 bis 32767 gültig. Das entspricht 16 Bit.

Die Befehle LSH (Left Shift) und RSH (Right Shift) schieben die Bits innerhalb eines Bytes nach links bzw. rechts.
AND, OR, XOR und NOT gelten jeweils für 1 Byte (Negative Zahlen sind mÖglich bis - 127, positive bis 255).
Die Speicher 97, 98 und 99 eignen sich besonders für Bitbefehle und logische Befehle, da ihre binären Zahlen oben links in der LED-Anzeige erscheinen. Dafür können sie keine Zahlen größer als 255 anzeigen.

Das Programm kann mit einem Trick gespeichert werden, obwohl Applets nicht speichern können: Mit "Export" wird der komplette Speicher des Von-Neumann-Rechners in ein großes Textfeld geschrieben. Es kann dort mit Strg C kopiert und in ein Textverarbeitungsprogramm eingefügt werden. Umgedreht kann man das Programm aus einer Textdatei in das Memo-Feld kopieren und anschließend in den Speicher des Rechners "Importieren".

Im folgenden Beispiel wird die Summe der Zahlen von 1 bis 7 berechnet und die Lösung in Speicheradresse 10 geschrieben.

0: LDA 8
1: STX
2: ADD 9
3: STA 9
4: DEX
5: LDX
6: JXP 2
7: END
8: 7

Der Flash-Film verdeutlicht, wie der Von Neumann Rechner in jeder Phase arbeitet.

Download der Flash-Datei Neumann.fla


Lauflichtbeispiele zum Programmieren



Blinker

Bild



Lauflicht1

Bild



Lauflicht 2

Bild



Lauflicht3

Bild


Lauflicht 4

Lauflicht 4

Lauflicht 5

Lauflicht 5