Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

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

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages