戻る 命令セット (instruction set)



仮想コンピュータ 命令セット

● 命令セット表

  ニーモニック 書  式 命令コード 動  作  Z  C
入出力 ININ0000 0010Input port → Acc
OUTOUTT0000 0011Acc → Output port
アキュムレータ
操作
CLR CLR0000 00010 → Acc1
INCINC0000 0100Acc + 1 → Acc
DECDEC0000 0101Acc - 1 → Acc
SFT_LSFT_L0000 1000C ← [76543210] ← 0
SFT_RSFT_R0000 10010 → [76543210] → C
インデックス
レジスタ
操作
SET_XSET_X adr1010 xxxxadr → Ix
INC_XINC_X0000 0110Ix + 1 → Ix
DEC_XDEC_X0000 0111Ix - 1 → Ix
リード/ライト READREAD adr, READ IX0001 xxxxM → Acc
WRITEWRITE adr, WRITE IX0010 xxxxAcc → M
メモリ INC_MINC_M adr, INC_M IX1000 xxxxM + 1 → M
DEC_MDEC adr, DEC_M IX1001 xxxxM - 1 → M
算術演算 ADDADD adr, ADD IX0011 xxxxAcc + M → Acc
SUBSUB adr, SUB IX0100 xxxxAcc - M → Acc
CMPCMP adr, CMP IX0101 xxxxAcc - M
論理演算 ANDAND adr, AND IX0110 xxxxAcc AND M → Acc
OROR adr, OR IX0111 xxxxAcc OR M → Acc
NOTNOT0000 1010NOT Acc → Acc
分岐 JMPJMP adr1011 xxxxadr → PC
条件分岐 JEZJEZ adr1100 xxxx(Z=1) adr → PC
JNZJNZ adr1101 xxxx(Z=0) adr → PC
JCSJCS adr1110 xxxx(C=1) adr → PC
JCCJCC adr1111 xxxx(C=0) adr → PC
その他 NOPNOP0000 0000no operation
疑似命令 STORESTORE adr, n n → M  
ENDEND CPU Stop.  

*1  Z: ゼロフラグ。演算・処理結果が 0 になったとき 1 になる。 C: キャリーフラグ。キャリーが発生したとき 1 になる。
: 変化する。 : 変化なし。 1: 1 になる。
*2  シフト命令。 SFT_L 命令では最下位ビットに 0 が入り、アキュムレータの各ビットは左に 1 ビットシフトして、 最上位ビットは C フラグに入る。 SFT_R 命令はその逆で、右にシフトする。
*3  adr はオペランド。 10進数、16進数、2進数 での表記ができる。 明示的に区別する場合は、10進数には "%"、16進数には "$"、2進数には "#" の識別子をつける。 (例: %13 $D #1101 etc. いずれも 10 進数での 13 を表す。)
2 進数を使用する場合は、識別子の有無にかかわらず、4 桁表記でなければならない。
*4  STORE 命令はアセンブル時に指定アドレスのメモリに指示された数値が書き込まれる。プログラムの実行とは無関係。 adr はアドレス、 n は書き込む数値。 (例: 13 番地に 133 を書き込む場合は、 "STORE    13, 133" とする。) "%"、 "$"、 "#" の識別子によって 10進数、16進数、2進数 で表記ができるが、 識別子を省略すると 10 進数とみなされる。
*5  プログラムの終了を表す疑似命令で、プログラムの最終行に必須。



情報処理概論 に戻る   講義資料 に戻る   アセンブラ プログラミング に戻る   戻る  

2008.05.16 ueyama@infonet.co.jp