16進コード |
ニーモニック |
説明 |
機能 |
データ転送命令 |
0XXX |
LD   Abs. |
Abs番地のデータをアキュムレータに読み込む |
Acc. ← (Abs.) |
C2XX |
LD   IXR,Disp. |
(IXR + Disp.)番地のデータをアキュムレータに読み込む. |
Acc. ← (IXR + Disp.) |
C1XX |
LD   #Imm. |
Imm.をアキュムレータに読み込む. |
Acc. ← Imm. |
1XXX |
ST   Abs. |
Abs番地にアキュムレータのデータを書き込む |
(Abs.) ← Acc. |
C6XX |
ST   IXR, Disp. |
(IXR + Disp.)番地のデータをアキュムレータに書き込む. |
(IXR + Disp.) ← Acc. |
F00X |
MV   rd, rs |
rsのデータをrdに読み込む |
rd ← rs |
C8XX |
IN   Abs. |
I/O空間のAbs.番地のデータをアキュムレータに読み込む. |
Acc. ← (Abs.) |
CCXX |
OUT   Abs. |
I/O空間のAbs.番地にアキュムレータのデータを書き込む. |
(Abs.) ← Acc. |
算術論理演算命令 |
82XX |
ADD   IXR, Disp. |
アキュムレータと(IXR + Disp.)番地のデータを加算し,アキュムレータに格納する |
Acc. ← Acc. + (IXR + Disp.) |
81XX |
ADD   #Imm. |
アキュムレータとImm.を加算し,アキュムレータに格納する. |
Acc. ← Acc. + Imm. |
86XX |
SUB   IXR, Disp. |
アキュムレータから(IXR + Disp.)番地のデータを減算し,アキュムレータに格納する |
Acc. ← Acc. - (IXR + Disp.) |
|
85XX |
SUB   #Imm. |
アキュムレータとImm.を減算し,アキュムレータに格納する. |
Acc. ← Acc. - Imm. |
880X |
INC   rd, rs |
rsのデータをインクリメントし,rdに格納する. |
rd ← rs + 1 |
8CXX |
DEC   rd,rs |
rsのデータをデクリメントし,rdに格納する. |
rd ← rs - 1 |
92XX |
OR   IXR, Disp. |
アキュムレータと(IXR + Disp.)番地のデータの論理和をアキュムレータに格納する . |
Acc. ← Acc. ∪ (IXR + Disp.) |
91XX |
OR   #Imm. |
アキュムレータとImm.の論理和をアキュムレータに格納する |
Acc. ← Acc. ∪ Imm. |
96XX |
EOR   IXR, Disp. |
アキュムレータと(IXR + Disp.)番地のデータの排他的論理和をアキュムレータに格納する. |
Acc. ← Acc. eor (IXR + Disp.) |
95XX |
EOR   #Imm. |
アキュムレータとImm.の排他的論理和をアキュムレータに格納する. |
Acc. ← Acc. eor Imm. |
9AXX |
AND   IXR, Disp. |
アキュムレータと(IXR + Disp.)番地のデータの論理積をアキュムレータに格納する. |
Acc. ← Acc. ∩ (IXR + Disp.) |
99XX |
AND   #Imm. |
アキュムレータとImm.の論理積をアキュムレータに格納する. |
Acc. ← Acc. ∩ Imm. |
9CXX |
NOT |
アキュムレータの1の補数をアキュムレータに格納する. |
Acc. ← ¬Acc. |
シフト命令 |
A000 |
LSL |
アキュムレータを論理左シフトする |
Acc. ← { Acc[14:0], 0 } |
A800 |
LSR |
アキュムレータを論理右シフトする |
Acc. ← { 0, Acc[15:1] } |
A400 |
ASL |
アキュムレータを算術左シフトする. |
Acc. ← { Acc[14:0], 0 } |
AC00 |
ASR |
アキュムレータを算術右シフトする. |
Acc. ← { Acc[15], Acc[15:1] } |
B000 |
ROL |
アキュムレータを左回転する. |
Acc. ← { Acc[14:0], Acc[15] } |
B400 |
ROL |
アキュムレータを右回転する. |
Acc. ← { Acc[0], Acc[15:1] } |
BC00 |
SWP |
アキュムレータの上位8bitと下位8bitを入れ換える |
Acc[15…8] ⇔ Acc[7…0] |
分岐命令 |
3XXX |
JP   Abs. |
無条件でAbs.番地に分岐する. |
PC ← Abs. |
4XXX |
JPc   Abs. |
キャリー・フラグが1であれば,Abs.番地に分岐する. |
if(CF == 1) then PC ← Abs. |
5XXX |
JPz   Abs. |
ゼロ・フラグが1であれば,Abs.番地に分岐する. |
if(ZF == 1) then PC ← Abs. |
6XXX |
JPs   Abs. |
サイン・フラグが1であれば,Abs.番地に分岐する. |
if(SF == 1) then PC ← Abs. |
7XXX |
JPv   Abs. |
オーバフロー・フラグが1であれば,Abs.番地に分岐する. |
if(VF == 1) then PC ← Abs. |
2XXX |
Call   Abs. |
サブ・ルーチンへ分岐する |
SP--, (SP) ←PC, PC ← Abs. |
EXXX |
Ret |
サブ・ルーチンから復帰する. |
PC ← (SP), SP++ |
スタック命令 |
D000 |
POP |
スタックのデータをアキュムレータに書き込む. |
Acc. ← (SP), SP ++ |
D400 |
PUSH |
アキュムレータの値をスタックに書き込む. |
SP--, (SP) ← Acc. |
プロセッサ制御命令 |
F800 |
HALT |
プロセッサの動作を停止させる |
Halt |
FC00 |
NOP |
何も行わない |
No Operation |