PIC アセンブラ (PIC16Fxxx) 命令セット ─ PIC めもめも

PIC16Fxxx 命令セット (14bit)

カテゴリニモニック意味コード
加算・減算ADDWF f, dW + f → dAdd W and f00 0111 dfff ffff
SUBWF f, df - W → dSubtract W from f00 0010 dfff ffff
ADDLW kW + k → WAdd literal and W11 111x kkkk kkkk
SUBLW kk - W → WSubtract W from literal11 110x kkkk kkkk
論理演算ANDWF f, dW AND f → dAND W with f00 0101 dfff ffff
IORWF f, dW OR f → dInclusive OR W with f00 0100 dfff ffff
XORWF f, dW XOR f → dExclusive OR W with f00 0110 dfff ffff
ANDLW kW AND k → WAnd literal with W11 1001 kkkk kkkk
IORLW kW OR k → WInclusive OR literal with W11 1000 kkkk kkkk
XORLW kW XOR k → WExclusive OR literal with W11 1010 kkkk kkkk
COMF f, df → dComplement f00 1001 dfff ffff
移動MOVF f, df → dMove f00 1000 dfff ffff
MOVWF fW → fMove W to f00 0000 1fff ffff
MOVLW kk → WMove litaral to W11 00xx kkkk kkkk
クリアCLRF f0 → fClear f00 0001 1fff ffff
CLRW W0 → WClear W00 0001 0xxx xxxx
インクリメント
デクリメント
DECF f, df - 1 → dDecrement f00 0011 dfff ffff
INCF f, df + 1 → dIncrement f00 1010 dfff ffff
DECFSZ f, df - 1 → d
Skip if result = 0
Decrement f, Skip if 000 1011 dfff ffff
INCFSZ f, df + 1 → d
Skip if result = 0
Increment f, Skip if 000 1111 dfff ffff
ビット操作BCF f, b0 → f[b]Bit Clear f01 00bb bfff ffff
BSF f, b1 → f[b]Bit set f01 01bb bfff ffff
スキップBTFSC f, bSkip if f[b] = 0Bit Test f, Skip if Clear01 10bb bfff ffff
BTFSS f, bSkip if f[b] = 1Bit Test f, Skip if Set01 11bb bfff ffff
シフトRLF f, df[n] → d[n+1]
f[7] → C → d[0]
Rotate Left f through Carry
(左巡回シフト)
00 1101 dfff ffff
RRF f, df[n] → d[n-1]
f[0] → c → d[7]
Rotate Right f through Carry
(右巡回シフト)
00 1100 dfff ffff
SWAPF f, df[0:3] → d[4:7]
f[4:7] → d[0:3]
Swap nibbles in f
(上位ビット ⇔ 下位ビット)
00 1110 dfff ffff
ジャンプGOTO kGo to address10 1kkk kkkk kkkk
CALL kCall subroutine10 0kkk kkkk kkkk
RETFIEReturn from interrupt00 0000 0000 1001
RETLW kReturn with literal in W11 01xx kkkk kkkk
RETURNReturn from Subroutine00 0000 0000 1000
その他CLRWDTClear Watchdog Timer00 0000 0110 0100
NOPNo Operation00 0000 0xx0 0000
SLEEPGo into standby mode00 0000 0110 0011
OPCODE フィールドの説明
FieldSizeDescription
f7ワーキングレジスタのアドレス (0x00 ~ 0x7F)
Wワーキングレジスタ(アキュムレータ)
b38 ビットファイルレジスタ内のビットアドレス
k8/11リテラル、定数またはラベル
(0 ~ 255) or (-128 ~ 127) or (アスキーコード 'A' とか)
x無効 (0 or 1)
アセンブラは x=0 としてコードを生成します。
すべてのソフトウェアツールとの互換性を確保するために x=0 を推奨します。
d1結果格納先指名子 (0 or 1)
0: W に格納
1: ファイルレジスタ f に格納 (Default)
PCプログラムカウンタ
TOタイムアウトビット
PDパワーダウンビット