機械語命令解説                 (このシミュレータ独自の機械語です)

「ジャンプ」以外の命令はすべて実行後に次行(現在の命令番地に1を足した番地)へ進む。 「条件判定」以外の命令はどれも条件フラグの値を変えない。 レジスタは000(A)から111(H)までの3ビットで指定する。

16ビットの命令
●●●●●●●● ●●●●●●●●
を3,2,3,8ビットに分けて,それぞれを 大分類小分類第一オペランド第二オペランド とする. いくつかの命令は第二オペランドを4ビットずつに分割して用いる。

大分類 小分類 働き(「詳細」クリックで該当説明が右トップに出現)
000 停止
001
ジャンプ
00 無条件ジャンプ。 ジャンプ先指定方法 ●00 番地指定
01 条件フラグが1ならばジャンプ ●01 正方向移動距離指定
10 条件フラグが0ならばジャンプ ●10 負方向移動距離指定
●11 レジスタ指定
010
メモリ・レジスタ間コピー
00 レジスタメモリの内容をコピーする。
01 レジスタ(別の)レジスタで指定された番地のメモリ内容をコピーする。
10 レジスタの内容をメモリにコピーする。
11 レジスタの内容を(別の)レジスタで指定された番地のメモリにコピーする。
011
レジスタへの書き込み
00 レジスタを0にする。
01 レジスタの下位8ビットにを書き込む。
10 レジスタ(別の)レジスタの内容をコピーする。
11 レジスタに現在の命令番地を書き込む。
100
ビット移動
00 レジスタ指定されたビット数だけ左にシフトする。
01 レジスタ指定されたビット数だけ左にローテートする。
10 レジスタ指定されたビット数だけ右に論理シフト(最左ビットは常に0)する。
11 レジスタ指定されたビット数だけ右に算術シフト(最左ビットは保持)する。
101
ビット論理演算
00 レジスタの各ビットを反転する。
01 レジスタ(別の二つの)レジスタ間の論理積の結果を書き込む。
10 レジスタ(別の二つの)レジスタ間の論理和の結果を書き込む。
11 レジスタ(別の二つの)レジスタ間の排他的論理和の結果を書き込む。
110
算術演算
00 レジスタに1を足す。
01 レジスタから1を引く。
10 レジスタ(別の二つの)レジスタ間の足し算結果を書き込む。
11 レジスタ(別の二つの)レジスタ間の引き算結果を書き込む。
111
条件判定
00 レジスタの値が0か?
01 レジスタの値が(別の)レジスタの値と等しいか?
10 レジスタの値が(別の)レジスタの値以上か?
11 レジスタの値が(別の)レジスタの値より大きいか?
以下は命令の詳細説明です。 •(黒丸)は動作に影響を与えないビットを表します(0,1どちらでもよい)。
目的の機械語を見付けるにはスクロールするか,左表の該当部分の「詳細」をクリックしてください。