Simulationsapplet CoSi6

Um die Funktionsweise des Von-Neumann-Prinzips zu verstehen, werden im untenstehenden Applet die Vorgänge etwas vereinfacht und die Programmierung in einer hypothetischen Maschinensprache ermöglicht.
 

Unser Computermodell simuliert die drei Phasen des Von-Neumann-Zyklus:

 

1. Hole den Befehl aus dem Speicher ins Befehlsregister

2. Entschlüssele den Befehl

3. Führe den Befehl aus. Erhöhe dabei das Befehlszählregister um 1 oder setze es durch einen Sprungbefehl auf die nächste Befehlsadresse.


Das Rechenwerk enthält neben dem Akkumulator auch noch ein zweites Register, mit dessen Hilfe Zählschleifen programmiert werden können.

Der Speicher umfasst 32 Speicherzellen mit den Adresse 0 bis 31.

Eingabe- und Auswerk sowie die Bus-Verbindungen sind weggelassen.

 

Befehle ohne Operanden

END

beendet das Programm

NUL

in Akkumulator wird der Wert 0 geschrieben (Reset)

INC

(increase) erhöht den Inhalt des Akkumulator um 1

DEC

(decrease) erniedrigt den Inhalt des Akkumulator um 1

STX

(store X) speichert den Inhalt des Akkumulators im Indexregister XR

LDX

(load X) speichert den Inhalt Indexregister XR in den Akkumulator

INX

(increase X) erhöht den Inhalt des Indexregisters XR im 1

DEX

(decrease X) erniedrigt den Inhalt des Indexregisters XR um 1

 

Befehle mit Operanden

LDA n

(load) lädt in den Akkumulator den Inhalt der Speicherzelle n

STA n

(store) speichert den Inhalt des Akkumulators in die Speicherzelle n

ADD n

addiere zum Inhalt des Akkumulators den Inhalt der Speicherzelle n

SUB n

Subtrahieren den Inhalt der Speicherzelle n vom Inhalt des Akkumulators

JMP n

(jump) springe mit der Befehlsauführung zur Speicherzelle n (Befehlszählregister wird mit n geladen)

JAZ n

(jump if akku zero) springe zur Speicherzelle n, falls der Inhalt des Akkumulator s 0 ist

JAN n

(jump if akku negative) springe zur Speicherzelle n, falls der Inhalt des Akkumulator s negativ ist

JXP n

(jump if X positive) springe zur Speicherzelle n, falls der Inhalt des Indexregisters positiv ist

Quelltext des Applets