PIC16Fシリーズ 命令セット (Instruction set)

命令セット一覧

分類   ニーモニック オペランド 説明 サイクル フラグ
Z DC C
データ転送   movf f,d fをdに代入
Move f
1    
movlw k 値をwに代入
Move literal to w
1      
movwf f wをfに代入
Move w to f
1      
  clrf f fを0にクリア
Clear f
1    
clrw - wを0にクリア
Clear w
1    
算術演算   addlw k wに値を加算
Add literal and w
1
addwf f,d wにfを加算し
Add w and f
1
  sublw k 値からwを減算
Subtract w from literal
1
subwf f,d fからwを減算し
Subtract w from f
1
  incf f,d fを+1
Increment f
1    
decf f,d fを-1
Decrement f
1    
論理演算   andlw k 値とwのAND
AND literal with w
1    
andwf f,d wとfのAND
AND w with f
1    
  iorlw k 値とwのOR
Inclusive OR literal with w
1    
iorwf f,d wとfのOR
Inclusive OR w with f
1    
  xorlw k 値とwのEXOR
Exclusive OR literal with w
1    
xorwf f,d wとfのEXOR
Exclusive OR w with f
1    
  comf f,d fを反転
Complement f
1    
ビット操作   bcf f,b fのbビットをクリア
Bit Clear f
1      
bsf f,b fのbビットをセット
Bit Set f
1      
  rlf f,d fをキャリを含めて左に回す
Rotate Left f through Carry
1    
rrf f,d fをキャリを含めて右に回す
Rotate Right f through Carry
1    
  swapf f,d fの上位と下位を交換
Swap nibbles in f
1      
分岐   goto k kへ移動
Go to address
2      
call k サブルーチンkへ移動
Call subroutine
2      
  retlw k 値をwに代入して復帰
Return with literal in w
2      
return - サブルーチンから復帰
Return from Subroutine
2      
  retfie - 割り込み処理から復帰
Return from interrupt
2      
条件分岐   btfsc f,b fのbビットが0ならスキップ
Bit Test f, Skip if Clear
1(2)      
btfss f,b fのbビットが1ならスキップ
Bit Test f, Skip if Set
1(2)      
  incfsz f,d fを+1して0ならスキップ
Increment f, Skip if zero
1(2)      
decfsz f,d fを-1して0ならスキップ
Decrement f, Skip if zero
1(2)      
その他   nop - 何もしない
No Operation
1      
  clrwdt - WDTをクリア
Clear Watchdog Timer
1      
sleep - スリープモードに移行
Go into standby mode
1      

オペランド (Operand)

コード 説明
f ファイルレジスタ (File register) を示す7ビットのアドレス値
d 転送先 (Destination) を示す1ビット 0 = w (Working register)
1 = f (File register)
k 値。データ値は8ビット、アドレスは12ビット

フラグ (Flag)

コード 説明
Z ゼロビット (Zero bit) 計算またはロジックの演算の結果 1 = ゼロ
0 = ゼロではない
DC デジットキャリー (Digit Carry) 下位4ビット目からのキャリー 1 = 発生した
0 = 発生しなかった
C キャリー (Carry) 最上位ビットからのキャリー 1 = 発生した
0 = 発生しなかった

PIC16Fxx 命令セット一覧表 (PDF形式)

疑似命令 (Pseudo instructions)

ニーモニック 説明 同等の操作
ADDCF f,d Add Carry to File
BTFSC    3,0
INCF     f,d
ADDDCF f,d Add Digit Carry to File
BTFSC    3,1
INCF     f,d
B k Branch
GOTO     k
BC k Branch on Carry
BTFSC    3,0
GOTO     k
BDC k Branch on Digit Carry
BTFSC    3,1
GOTO     k
BNC k Branch on No Carry
BTFSS    3,0
GOTO     k
BNDC k Branch on No Digit Carry
BTFSS    3,1
GOTO     k
BNZ k Branch on No Zero
BTFSS    3,2
GOTO     k
BZ k Branch on Zero
BTFSC    3,2
GOTO     k
CLRC Clear Carry
BCF      3,0
CLRDC Clear Digit Carry
BCF      3,1
CLRZ Clear Zero
BCF      3,2
LCALL k Long Call
BCF/BSF  0x0A,3
BCF/BSF  0x0A,4
CALL     k
LGOTO k Long GOTO
BCF/BSF  0x0A,3
BCF/BSF  0x0A,4
GOTO     k
MOVFW f Move File to W
MOVF     f,0
NEGF f,d Negate File
COMF     f,1
INCF     f,d
SETC Set Carry
BSF      3,0
SETDC Set Digit Carry
BSF      3,1
SETZ Set Zero
BSF      3,2
SKPC Skip on Carry
BTFSS    3,0
SKPDC Skip on Digit Carry
BTFSS    3,1
SKPNC Skip on No Carry
BTFSC    3,0
SKPNDC Skip on No Digit Carry
BTFSC    3,1
SKPNZ Skip on Non Zero
BTFSC    3,2
SKPZ Skip on Zero
BTFSS    3,2
SUBCF f,d Subtract Carry from File
BTFSC    3,0
DECF     f,d
SUBDCF f,d Subtract Digit Carry from File
BTFSC    3,1
DECF     f,d
TSTF f Test File
MOVF     f,1