Skip to content

d4vidyo/Registermaschine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Registermaschine

Einfache Simulation einer Registermaschine.

Dokumentation

Die Befehle werden Zeilenweise aus der "text.txt" Datei gelesen.

Die Befehlsfrequenz kann als optionaler Parameter angegeben werden Registermaschine.py 10.

Namenskonventionen

$PC$: Befehlszähler.

$f\left( 0 \right)$: Inhalt des Akkumulators.

$f\left( adresse \right)$: Inhalt des Datenspeichers an der Stelle adresse.

Befehle

Syntax Semantik Beschreibung
ADD adresse $f(0)=f(0)+f(adresse)$ Addieren
SUB adresse $f(0)=f(0)-f(adresse)$ Subtrahieren
MUL adresse $f(0)=f(0) \cdot f(adresse)$ Multiplizieren
DIV adresse $f(0)=f(0) \div f(adresse)$ Dividieren
LDA adresse $f(0)=f(adresse)$ Laden
LDK zahl $f(0)=zahl$ Konstante Laden
STA adresse $f(adresse)=f(0)$ Speichern
INP adresse $f(adresse)=[Eingabe]$ Eingeben
OUT adresse $[Ausgabe] = f(adresse)$ Ausgeben
HLT 99 Programmende
JMP adresse $PC = adresse$ Jump
JEZ adresse Falls $f(0)=0$, dann $PC = adresse$ Jump if equal zero
JNE adresse Falls $f(0) \ne 0$, dann $PC = adresse$ Jump if not equal zero
JLZ adresse Falls $f(0) <0$, dann $PC = adresse$ Jump if less than zero
JLE adresse Falls $f(0) \le 0$, dann $PC = adresse$ Jump if less or equal zero
JGZ adresse Falls $f(0)>0$, dann $PC = adresse$ Jump if greater than zero
JGE adresse Falls $f(0) \ge 0$, dann $PC = adresse$ Jump if greater or equal zero

Beispielprogramm

Berechnung von $\sum_{i=0}^{n}i^{3}$ für ein eingegebenes $n$:

INP01
LDK0
STA02
LDA01
MUL01
MUL01
ADD02
STA02
LDK-1
ADD01
STA01
JGE5
OUT02
HLT99

About

Einfache Simulation einer Registermaschine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages