2017-05-18 5 views
-1

私はコンピューティングシステムの要素を読んでいます(コースをやっています)。私はスクリーンを黒くするためにハックアセンブリプログラムを書こうとしています。ここに私が持っているものがあります。画面を黒くするためのハックアセンブリプログラム

@16384 
D=A 
@current 
M=D 

@24576 
D=A 
@end 
M=D 

@current 
D=M 

(BEGIN) 
@end 
D=M-D 

@END 
D;JEQ 
@current 
D=M 
A=M 
M=1 
A=A+1 
D=A 
@current 
M=D 

@BEGIN 
0;JMP 

(END) 
@END 
0;JMP 

いくつかのピクセルが表示されますが、非常にゆっくりと、b)画面全体が満たされているように見えません。コードを改善する方法はありますか?

答えて

1

答えを伝えるだけでは適切ではありませんが、ここであなたを助けるかもしれないいくつかのヒントがあります。

  • HACKシンボルは、大文字と小文字が区別されますが、それは混乱をリスクので、2つの 異なるものを@endと@ENDを使用することは悪いスタイルです。

  • 有用であると思われる定義済みのシンボルSCREENがあります。

  • 各16ビットワードのすべてのビットを画面メモリ領域に設定する必要があります。 M = 1は1ビットのみを設定する。

  • 終了ポインタの値ではなく、残っているループの数を保持する方が便利な場合があります。

  • MD = M-1のように、操作の結果を複数の宛先に格納できることに注意してください。これは便利です。

  • ループの例については、講義ノート4を参照してください。 http://www.nand2tetris.org/lectures/PDF/lecture%2004%20machine%20language.pdf

幸運!

関連する問題