Ein Beispiel

Betrachte als Beispiel das folgende MiniPython-Programm:

x=2
y=3
z=x+y

Zu diesem Programm soll ein entsprechendes Bonsai-Assemblerprogramm erzeugt werden, das z.B. so aussehen könnte:

0: tst 0
1: jmp 3
2: jmp 5
3: dec 0
4: jmp 0
5: inc 0
6: inc 0
7: tst 1
8: jmp 10
9: jmp 12
10: dec 1
11: jmp 7
12: inc 1
13: inc 1
14: inc 1
15: tst 0
16: jmp 18
17: jmp 22
18: dec 0
19: inc 3
20: inc 4
21: jmp 15
22: tst 4
23: jmp 25
24: jmp 28
25: dec 4
26: inc 0
27: jmp 22
28: tst 1
29: jmp 31
30: jmp 35
31: dec 1
32: inc 3
33: inc 4
34: jmp 28
35: tst 4
36: jmp 38
37: jmp 41
38: dec 4
39: inc 1
40: jmp 35
41: tst 2
42: jmp 44
43: jmp 46
44: dec 2
45: jmp 41
46: tst 3
47: jmp 49
48: jmp 52
49: dec 3
50: inc 2
51: jmp 46
52: hlt

Vielleicht wirkt es schockierend, wie viele Zeilen Bonsai-Assembler aus drei Zeilen MiniPython-Code geworden sind. Dabei muss man allerdings zwei Dinge beachten:

Aufgabe 1

Versuche, das Bonsai-Assemblerprogramm so in Abschnitte zu zerlegen, dass jeder Abschnitt einer Zeile des MiniPython-Programms entspricht.

Aufgabe 2

Beschreibe für jeden der MiniPython-Befehle, wie sie in Bonsai umgesetzt sind. Falls dir das nicht leicht fällt oder sogar gar nicht funktioniert, beschreibe möglichst genau, wo die Schwierigkeiten liegen.

X

Fehler melden

X

Suche