Mikroprozessor-Simulation

mit dem DC (Didaktischer Computer)

,,...dann wird sich herausstellen, dass wir, indem wir scheinbar über die Rechenmaschine reden, uns in Wirklichkeit mit dem menschlichen Denken befassen...'' (Leibniz)


Zur Diashow
Kurzerklärung:
AB Adress-Bus
PC Program Counter
AC Accumulator
AR Adress-Register
SP Stack-Pointer
BP Base-Pointer
IR Instruction-Register
ALU Arithmetic Logical Unit
DR Daten-Register
Output Ausgabezeile
Der DC in Aktion:
Links unten ist das Eingabefeld zu sehen. Es wurde "l" fuer das Laden eines Programmes und "w" für "Warte" eingegeben, d.h. nach jeder Phase der Befehlsverarbeitung wartet der DC auf Return. Der erste Befehl (JMP 4) wurde bereits ausgeführt Der Befehl an Speicherstelle 4 wird gerade aus dem Speicher rechts gelesen. Dazu wird der PC (aktuell auf 4) zuerst in das Adress-Register geschrieben, was man deutlich an den Pfeilen erkennen kann. Jeder Transport eines Register- oder Speicherwertes wird mit Pfeilen dargestellt, kann aber abgeschaltet werden. Der Stackpointer steht auf 127, der höchsten Speicheradresse.
Man sieht, dass der Adressbus eine Breite von 7 Bit, der Datenbus eine Breite von 13 Bit besitzt.
Der eingebaute Assembler:
Die für den DC ladbaren Programme sind Textdateien mit der Endung DC, die den Inhalt des rechts dargestellten Speichers beschreiben. Mit diesen Dateien beginnt man den Unterricht, wenn es in erster Linie um die Verfolgung der internen Vorgänge geht. Man kann bei einfachen Programmen die Befehle mit absoluten Adressen auch direkt im DC eingeben, dann leider aber nicht abspeichern. Sind die internen Vorgänge klar geworden, geht es mehr um die Nachbildung diverser Strukturen einer Hochsprache auf der Maschinenebene. Dies wird bequemer dadurch, dass man mit symbolischen Adressen arbeiten und diese Datei mit Endung DCL durch den eingebauten Mini-Assembler in eine DC-Datei übersetzen lassen kann.
Hier ein Beipiel einer einfachen DCL-Datei. Es werden die zwei Zahlen a und b gelesen, die Zahl c=(a+1)+b berechnet und c ausgegeben.
Die dazugehörige Datei Einfach.dcl enthält symbolische Namen für Adressen und Sprungziele (es ist auch möglich, lokale Variablen auf dem Stack z.B. mit x EQUAL 3 zu definieren, wobei diese Variable dann an der Speicherstelle SP+3 zu finden ist.):
; PROGRAM Einfach.dcl
JMP Anfang
A       DEF 0  ; int  a
B       DEF 0  ; int  b
C       DEF 0  ; int  c
Anfang:
        INM A  ; read (a);
        INM B  ; read (b);
        LDA A
        INC
        ADD B
        STA C  ; c = (a+1) + b;
        OUT C  ; print (c);
        END
Daraus macht der Mini-Assembler folgende Datei, die deutlich schwerer lesbar ist:
  0 JMP      4
  1 DEF      0
  2 DEF      0
  3 DEF      0
  4 INM      1
  5 INM      2
  6 LDA      1
  7 INC
  8 ADD      2
  9 STA      3
 10 OUT      3
 11 END

Weitere Informationen und Arbeitsblätter:
Download:
Links zu anderen Simulatoren: