add1.py, add2.py, add3.py,
add4.py, add.bon
Es ist möglich, den Schritt 3 noch ganz in Python zu machen, wenn man vorher
Labels und goto auch in Python verfügbar macht.
from goto import goto, label
a = 12
b = 33
label .SB
if b > 0:
goto .SK
else:
goto .SE
label .SK
b = b - 1
a = a + 1
goto .SB # Achtung, wird leicht vergessen
label .SE
print a,b
Schritte zum Assemblerprogramm
- Implementierung des Algorithmus in einer Hochsprache, hier Python
- Zuordnung der Variablen zu Registern
- Ersetzen von Zuweisungen durch Schleifenkonstrukte mit dem Ziel, nur Zuweisungen der Form a = a+1 oder b = b-1
zu erhalten
- Ersetzen von Schleifenbedingungen der Form a>=b durch die Form a>0
- Einführung von Labels für Schleifenanfänge, Schleifenkörper, Schleifenenden
- Numerierung der Bonsai-Befehle, Ersetzen der Labels durch Nummern
- Ersetzen der Labels in den Sprungbefehlen durch Nummern
Links