現在、 Nand から Tetris へのコース ( )の第 4 章にあるプロジェクトを完成させようとしていFill.asm
ます。ただし、アセンブラーで次のエラーが表示されます。
「3行目、式が必要です」
何が間違っているのかわかりません...しかし、以下は私が持っているコードのスニペットです:
@i
M=1
@sum
M=8192
(END)
@END
0,JMP
3 行目 ( ) でこのエラーが発生する理由を誰か教えてもらえます@sum
か?
現在、 Nand から Tetris へのコース ( )の第 4 章にあるプロジェクトを完成させようとしていFill.asm
ます。ただし、アセンブラーで次のエラーが表示されます。
「3行目、式が必要です」
何が間違っているのかわかりません...しかし、以下は私が持っているコードのスニペットです:
@i
M=1
@sum
M=8192
(END)
@END
0,JMP
3 行目 ( ) でこのエラーが発生する理由を誰か教えてもらえます@sum
か?
3 行目にエラーが表示される理由はわかりませんが、4 行目のメモリ アドレスに値を直接設定することはできません。2 行目のように ALU から強制的に "1" を出力できますが、最初に入力せずに「8192」を強制する方法はありません。最初に「8192」の値を A レジスタに割り当て、次に A レジスタを D レジスタに格納し、次にメモリ アドレスを選択して、そこに D レジスタを格納する必要があります。
表示されているエラーは、値「8192」を @sum に直接入れることができないためです。
これを解決するために私が書いたコードは次のとおりです。
@8192 // number of pixels on a screen divided by 16-bit address (256 x 512 / 16)
D=A // D = total number of pixels
@sum
M=D // assigns sum with value of 8192