アセンブリ言語をPythonに変換しようとしています。私はこれを行うときにできるだけ文字通りアセンブリコードを従おうとしています。私はこの特定のコードが入れ子にされた条件文を必要とすることを知っています。私はa、b、c、dをメモリの場所として使用しています。ここで アセンブリ言語をPythonコードに変換する
は、アセンブリ言語である: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
これは、Pythonにコードの私の直訳です。私は、コードの直訳をやっていないよので、もし印刷さdと印刷bがあれば、他のネストされた書類に含まれていることがわかり
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
、多分それは次のようになりますか?
a = input()
if a<=d:
print c
c = a+b
d = d-1
print b
else:
c = c-1
print d
print b
if c>a:
d=d+1
c=0
最後に、これらの翻訳のいずれかが正しいですか?彼らは同じように評価しません。また、この翻訳を行うためのより良い方法がありますか?
これらのコンバージョンについて他のヒントやルールを覚えておくことは歓迎します。
ご協力いただきありがとうございます。
ありがとう、それは非常に役に立ちます - 私はあなたがPythonで説明したやり方でそれを試してみてテストします。あなたは最初の翻訳か2番目の翻訳かその両方を見ましたか?再度、感謝します! – JenTen10
@ Cinder1:主に最初のもので、ほとんどが最初の 'if'ブロック/ 6行目から11行目のasmです。 –
恐ろしいです!本当にありがとう! – JenTen10