HSG |
|
Das Simulations-Programm speichert Bonsai-Programme in folgendem Format ab. Zuerst kommen die Befehle, der Opcode besteht aus 3 groß geschriebenen Zeichen, dann folgt die Adresse (2 Zeichen, rechtsbündig). Die Datenzeilen werden durch ein # eingeleitet, dann folgt der Registerinhalt als Zahl (5 Zeichen, rechtsbündig). Es folgen Kommentarzeilen, die mit ; eingeleitet werden.
TST 2 JMP 4 HLT DEC 2 INC 1 JMP 1 # 2 # 3 ;einfaches Additionsprogramm ; ; ; ; ; ; ; ; ;
bonsai.py, ADD1.BON,DIVMODPY.BON
[';Daten', 130, 7, 18, 4, 0, 0] inc(3+4): 1068 dec(3+4): 1046 jmp(3+1): 1806 tst(3+3): 1016 Takte: 28118
28118 Takte brauchen ca. 0,03s.
Der Interpeter bi.py (alt: boni.py) benötigt das Modul ply. Der Interpreter kann symbolische Namen und relative Sprünge (jmp (-3) springt 3 Stellen rückwärts) verwenden. Solchermaßen erstellte 'Code-Schnipsel' sind damit leicht zu einem Ganzen zusammenbaubar.
Die folgende Beispieldatei beispiel.txt initialisiert zunächst die Variablen a und b. Dann folgt ein Code-Schnipsel mit relativen Sprüngen und den symbolischen Adressen a und b. Die Inhalte der Variablen a und b werden am Ende automatisch ausgegeben.
a = 3 b = 2 tst b jmp (+2) jmp (+4) dec b inc a jmp (-5)
Unter Linux wurde zunächst bi.py und beispiel.txt auf die Arbeitsfläche kopiert und dann wie folgt gestartet. Unter Windows funktioniert das genauso, nur wird man hier nur 'python' eingeben. Gegebenenfalls muss noch der Suchpfad zum Python-Interpreter eingestellt werden.
mk@x2:~/Arbeitsfläche$ python3 bi.py beispiel.txt a = 3 , b = 2 2 inc 2 dec 0 jmp 5 jmp() 3 tst 1 hlt 13 gesamt a = 5 , b = 0