入力を二乗する簡単なプログラムを LMC で作成しました。
INP
STA X
LDA X
STA Y
LOOP LDA Y
BRZ END
LDA ANSWER
ADD X
STA ANSWER
LDA Y
SUB ONE
STA Y
BRA LOOP
END LDA ANSWER
OUT
SUB ANSWER - This line
STA ANSWER - And this one
HLT
ONE DAT 1
ANSWER DAT 0
X DAT
Y DAT
いくつかのテストの後、上下に示されている 2 つの行がないことに気付きました。
SUB ANSWER - This line
STA ANSWER - And this one
... プログラムが正しい結果を出力していないようです。より具体的には、生成される結果は、シミュレーターを複数回実行した後、非常に自発的です。
I ask this question out of curiosity since I don't seem to understand the point/reasoning of the lines I have added above to make the program work. I got it working purely out of luck.