0

これは、LMC アセンブリ コードに変換したい JavaScript のコードです。

<!DOCTYPE html>
<html>
<body>
<script>
var temp = 14;
var y = 2;
temp <<= y;
document.write(temp);
</script>
</body>
</html>

私の仕事は、y 値を変更するために同じ結果を生成する LMC 用のプログラムを作成することです。

これが私がこれまでに持っているものです:

LOOP LDA COUNT
ADD ONE
STA COUNT
LDA TOTAL
ADD TEMP
STA TOTAL
LDA Y
SUB COUNT
BRZ ENDLOOP
BRA LOOP
ENDLOOP LDA TOTAL
STA TEMP
LDA TEMP
ADD TEMP
OUT
HLT
ONE DAT 001
COUNT DAT
TOTAL DAT
TEMP DAT 14
Y DAT 2

2 の値では機能しますが、3,4 などの他の値では機能しません。

何かご意見は?

4

2 に答える 2

1

言葉で:

Read R0 and R1 from Input
while R1 > 0 {
    Subtract 1 from R1
    Add R0 to itself
}
Output R1

LMC アセンブラーで:

     INP
     STA R0
     INP
     STA R1
LOOP LDA R1
     BRZ END
     SUB ONE
     STA R1
     LDA R0
     ADD R0
     STA R0
     BRA LOOP
END  LDA R0
     OUT

R1   DAT
R0   DAT
ONE  DAT 1

このコードが実行されているのを確認できます: Shift left in LMC Emulator .

于 2016-04-20T02:25:25.633 に答える