コンピューター理論、チョットデキルようになりたい

コンピュータサイエンスの学び直しです

学び直し29日目:6章 アセンブラ:Hackアセンブラからバイナリへの変換仕様

記録

アセンブリコマンドとバイナリコードの対応表を基本的には良いすればよいわけだが、その対応表を作るにあたり規約を定められている。

ファイルの種類

  • バイナリコードのファイル拡張子が .hackアセンブリ言語のファイル拡張子が .asm。
    • バイナリコードの n 行目は、命令メモリの n 番目のアドレスに格納される。
    • アセンブリ言語の各行は、命令かシンボル宣言のどちらか。
      • 命令は A 命令 or C 命令の二種類。さんざんやってきたので割愛。
      • ラベルシンボルは疑似コマンドと呼ばれる。次のコマンドが格納されるアドレスと結び付けられる。疑似コマンドは、機械語のコードに生成されない(次の場所に飛ばすだけっぽい)。
    • アセンブラニーモニックはすべて大文字。ラベルや変数は大文字と小文字を区別して使用可能。慣例としてはラベルは大文字で変数は小文字。

シンボル

定義済みのシンボル、ラベルシンボル、変数シンボルの3種類ある。

  • 定義済みシンボル:レジスタや SCREEN, KBD などすでに用途が決まってそうなもの。
  • ラベルシンボル:(Xxx) で使われているもの。(LOOP) とか。これを使って、疑似コマンドの次のコマンド位置を参照する。
  • 変数シンボル:定義済みでもラベルでもなくいもの。最初に変数に遭遇した順に、メモリが順に割り当てられる。開始アドレスは 0x0010。

今日の筋トレ

リングフィットアドベンチャーがんばった。もう一周やるか…