「ジャンプ」以外の命令はすべて実行後に次行(現在の命令番地に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どちらでもよい)。
目的の機械語を見付けるにはスクロールするか,左表の該当部分の「詳細」をクリックしてください。 |