これは、機械語命令( インストラクション(コード)とか、 オ ペコード (opcode) とか言ったりします)にほぼ対応した命令を文字 列(アルファベット、数字)で書き表し(これをニーモニック (mnemonic) といいます)その引数( オペランド (operand) と いうことがあります)も、レジスタ番号(記号)やアドレスに名前をふったも の(ラベルといいます)で書き表すことで、生の機械語を書くよりは数段楽に プログラミングすることができます。
ちなみに、アセンブリ言語を機械語に変換するのは(計算機が発明された当初 は人間が手でやっていましたが) アセンブラ (assembler, assemble する もの、の意) というプログラム(ソフト ウェア) でおこなうのが一般的です。このことから、アセンブリ言 語のことをアセンブラ(ル)言語とか、あるいは略してア センブラと言うこともあります。
MOV A 1 MOV B A ADD B 1 OUT B L0: JMP L0これの読み方の詳細は TD4 と GMC4 の違いの解説(?) 等をみてみてください(ぺこり)
MOV A 1で、Aレジスタに1という値をムーブ(移動、つまり代入)します。レジスタ (メモリ)の内容を、そのまま1にする、ということです。
MOV B Aで、Aレジスタの値をBレジスタに代入する、ということでBレジスタの値も1になるわけです。
ADD B 1で、Bレジスタの値に1を加える、ということでBレジスタの値は2になるわけです。
OUT BでBレジスタの値を出力します。具体的には出力用 LED をBレジスタの 0/1 に応じて光らせます。
このCPUにおいて、Bレジスタはデータ処理と出力用の作業領域の役目、と覚えておけ ばよいでしょう。Aレジスタは直接出力できない仕様です。
L0: JMP L0これは、「ラベル L0 が示すアドレスに制御を移す」ということは、自分自身 を再度実行せよ、ということになります。つまりここで無限ループに入ること になり、実質的なプログラムの終了です。
TD4 には終了命令が無いので(ある CPU も勿論あります)、処理が 終了したら何もしない無限ループにする、ということでした。