命令の引数について:
番号 命令 引数 説明
1 ADD d レジスタの値に引数で指定されたアドレスのデータを加える。
2SUBd レジスタの値から引数で指定されたアドレスのデータを引く。
3MULd レジスタの値に引数で指定されたアドレスのデータを掛ける。
4DIVd レジスタの値を引数で指定されたアドレスのデータで割る。
余りは切捨て。
5LOADd 引数で指定されたアドレスのデータをレジスタにコピーする。
6STOREd レジスタの値を引数で指定されたアドレスにコピーする。
7JUMPp 引数で指定されたアドレスに飛ぶ。
8JUMPZEROp もしレジスタの値が 0 なら引数で指定されたアドレスに飛ぶ。
9JUMPGEp もしレジスタの値が正か 0 なら引数で指定されたアドレスに飛ぶ。
aHALT n プログラムの実行を終了する。
bPRINTn レジスタの値を画面(Display) に表示する。
cAPRINTd 引数で指定されたアドレスの値を画面に表示する。
dCLEARd 引数で指定されたアドレスの値を0 にする。
eINCd 引数で指定されたアドレスの値を1増やす。

引数の d, p, n は,命令の引数となる数がデータ用のメモリのアドレスなのか(d), 命令の引数となる数がプログラム用のメモリのアドレスなのか(p), 引数が全くないのか(n) を意味している。

各命令のマシン語:

各命令は、上の表で与えられる数(4bit)と、その引数 (4bit) を合わせた 8bit (1byte) の長さのマシン語のコードを持つ。例えば、ADD 4 という命令は16 進 法で 14, JUMPGE c は 9c、HALT は a0 というコードとなる。

使用方法:

最上部のラジオボタンが示す様に、edit と execute の2つのモードがある。

まず、edit モードで、プログラムとデータを書き込む。あるいは、右上の Samples のメニューからサンプル・プログラムを選ぶこともできる。 英文字は、大文字、小文字のどちらでも構わない。また、最 下部の Machine Code の所に、マシン語のバイト列として入力することもでき る。 プログラムとデータができたら、ラジオボタンで execute モードを選ぶ。 すると、プログラムがマシン語に変換されて最下行に表示され、onestep, go, reset の3つのボタンが使用可能となる。onestep で1命令実行、go で halt 命令により終了するまで実行する。reset で最初の状態に戻る。ただし、go でいつ までたっても halt に到達しない場合のことを考え、go も 1000ステップ進 んで halt に到達しなければ、止まる様にしてある。続けて実行したければ、 再び go を押せばよい。

edit モードに戻れば、プログラムやデータを変更することができる。

サンプルプログラムの説明:

次のようなプログラムを書いてみてはいかがでしょう:

バグ、質問は、できるだけ具体的に書いて以下のアドレスまで
Hideki Tsuiki,
tsuiki@i.h.kyoto-u.ac.jp