Ich versuche Assemblersprache in Python zu konvertieren. Ich versuche, den Assemblercode so wörtlich wie möglich zu befolgen, wenn ich das tue. Ich weiß, dass dieser bestimmte Code geschachtelte bedingte Anweisungen erfordert. Ich verwende a, b, c, d als Speicherorte. HierKonvertieren der Assemblersprache in Python Code
ist die Assemblersprache:
0 IN a
1 LOAD d
2 COMPARE a
3 JUMPLT 6
4 JUMPEQ 6
5 JUMPGT 12
6 OUT c
7 LOAD a
8 ADD b
9 STORE c
10 DECREMENT d
11 JUMP 20
12 DECREMENT c
13 LOAD a
14 COMPARE c
15 JUMPLT 19
16 JUMPEQ 19
17 INCREMENT d
18 CLEAR c
19 OUT d
20 OUT b
21 HALT
Dies ist meine wörtliche Übersetzung des Code in Python.
a = input()
if a<=d:
print c
c = a+b
d = d-1
print b
else:
c = c-1
if c<=a:
print d
print b
else:
d=d+1
c=0
print d
print b
Ich sehe, dass Druck d und Druck b sind in den if und else verschachtelten Anweisungen enthalten, so, wenn ich nicht eine wörtliche Übersetzung des Codes zu tun, vielleicht sollte es so aussehen?
Und meine letzten Fragen: Sind beide Übersetzungen korrekt? Sie bewerten nicht den gleichen Weg. Gibt es auch bessere Möglichkeiten, diese Übersetzung zu machen?
Weitere Tipps oder Regeln, die Sie bei diesen Konvertierungen beachten sollten, wären willkommen.
Vielen Dank im Voraus für Ihre Hilfe.
Vielen Dank, das ist sehr hilfreich - ich werde es versuchen, wie Sie in Python beschrieben und es testen. Haben Sie sich die erste oder die zweite Übersetzung angesehen? Danke noch einmal! – JenTen10
@ Cinder1: meistens nur der erste und meistens nur der erste 'if' Block/die ASM aus den Zeilen 6 bis 11. –
Super! Vielen Dank! – JenTen10