PICメモ

命令一覧

記号の意味

記号内容
fレジスタのアドレス
bビット(0〜7)
d格納先(W or F)
[ ]省略可能
記号内容
Wワーキングレジスタ
kリテラル
labelラベル
  

バイト処理命令

命令オペランド内容影響フラグサイクル
ADDWFf,dW + f -> dC, DC, Z1
ANDWFf,dW AND f -> dZ1
CLRFf00H -> fZ1
CLRW 00H -> WZ1
COMFf,d fの2の補数 -> dZ1
DECFf,df - 1 -> dZ1
DECFSZf,df - 1 -> d; if result=0 then skip 1(skipなら2)
INCFf,df + 1 -> dZ1
INCFSZf,df + 1 -> d; if result=0 then skip 1(skipなら2)
IORWFf,dW OR f -> dZ1
MOVFf,df -> dZ1
MOVWFfW -> f 1
NOP   1
RLFf,d左回り f(n) -> f(n+1), f(7) -> C, C -> f(0)C1
RRFf,d右回り f(n) -> f(n-1), f(0) -> C, C -> f(7)C1
SUBWFf,df - W -> dC, DC, Z1
SWAPFf,df(3〜0) -> d(7〜4), f(7〜4) -> d(3〜0) 1
XORWFf,dW XOR f -> dZ1

ビット処理命令

命令オペランド内容影響フラグサイクル
BCFf,b0 -> f(b) 1
BSFf,b1 -> f(b) 1
BTFSCf,bif f(b)=0 then skip 1(skipなら2)
BTFSSf,bif f(b)=1 then skip 1(skipなら2)

リテラル処理命令

命令オペランド内容影響フラグサイクル
ADDLWkW + k -> WC, DC, Z1
ANDLWkW AND k -> WZ1
IORLWkW OR k -> WZ1
MOVLWkk -> W 1
SUBLWkk - W -> WC, DC, Z1
XORLWkW XOR k -> WZ1

コントロール命令

命令オペランド内容影響フラグサイクル
CLRWDT WDTリセット, 0 -> WDTプリスケーラ, 1 -> TO, 1 -> PDTO, PD1
SLEEP スリープモード, WDTリセット, 0 -> WDTプリスケーラ, 1 -> TO, 0 -> PDTO, PD1

ジャンプ命令

命令オペランド内容影響フラグサイクル
CALLk(label)サブルーチンにジャンプ 2
GOTOk(label)ジャンプ 2
RETURN サブルーチンから復帰 2
RETFIE 割り込みから復帰, 1 -> GIE 2
RETLWkサブルーチンから復帰, k -> W 2

数値データの書き方


種類書式使用例
16進数H'<hex digits>'
0<hex digits>H
H'9f'
0AFH
4Bh
10進数D'<digits>'D'100'
8進数O'<octal digits>'O'777'
2進数B'<binaly digits>'B'00111001'
ASCII'<character>'
A'<character>'
'C'
A'C'

特殊


記号意味使用例
$現在のプログラムカウンタの値goto $+3
highラベルのアドレスの上位バイトmovlw high TABLE
lowラベルのアドレスの下位バイトmovlw low TABLE

参考