PIC指令功能分类表 |
类 型 |
助记符 |
操作说明 |
命令说明 |
影响标志位 |
|
传 送 类 |
MOVF F,d |
F→d |
将F寄存器的内容传送到F本身(d=1)或W(d=0) |
(影响状态位)Z |
|
MOVWF F |
W→F |
将W寄存器的内容传送到F,W内容不变 |
- |
|
MOVLW K |
K→W |
将8位立即数传送到W寄存器 |
- |
|
SWAPF F,d |
F半字节交换→d |
F寄存器的高4位和低4位交换位置后,结果存入F本身(d=1)或W(d=0)中 |
- |
|
算 术 运 算 类 |
ADDWF F,d |
F+W→d |
W寄存器的内容和F寄存器的内容相加,结果存入F(d=1)或W(d=0)中 |
C,DC,Z |
|
ADDLW F,d |
K+W→W |
W寄存器的内容和8位立即数相加,结果存入W |
C,DC,Z |
|
INCF F,d |
F+1→d |
F寄存器的内容加1后,结果存入W(d=0)或F(d=1)中 |
Z |
|
SUBWF F,d |
F-W→d |
F寄存器的内容减去W寄存器的内容,结果存入W(d=0)或F(d=1)中 |
C,DC,Z |
|
SUBLW K |
K-W→W |
8位立即数减掉W寄存器的内容,结果存入W |
C,DC,Z |
|
DECF F,d |
F-1→d |
F寄存器的内容减1后,结果存入W(d=0)或F(d=1)中 |
Z |
|
逻 辑 运 算 类 |
ANDWF F,d |
F∧W→d |
W寄存器的内容和F寄存器的内容相与,结果存入F(d=1)或W(d=0)中 |
Z |
|
ANDLW K |
K∧W→W |
W寄存器的内容和8位立即数相与,结果存入W |
Z |
|
IORWF F,d |
F∨W→d |
W寄存器的内容和F寄存器的内容相或,结果存入F(d=1)或W(d=0)中 |
Z |
|
IORLW K |
K∨W→W |
W寄存器的内容和8位立即数相或,结果存入W |
Z |
|
XORWF F,d |
F⊕W→d |
W寄存器的内容和F寄存器的内容相异或,结果存入F(d=1)或W(d=0)中 |
Z |
|
XORLW K |
K⊕W→W |
W寄存器的内容和8位立即数相异或,结果存入W |
Z |
|
COMF F,d |
F取反→d |
F寄存器的内容取反后,结果存入F(d=1)或W(d=0)中 |
Z |
|
CLRF F |
0→F,寄存器复位 |
F寄存器的内容被清为全0 |
Z |
|
CLRW - |
0→W,寄存器复位 |
W寄存器的内容被清为全0 |
Z |
|
RLF F,d |
F带C循环左移→d |
将F寄存器带C循环左移,结果存入F本身(d=1)或W(d=0)。 |
C |
|
RRF F,d |
F带C循环右移→d |
将F寄存器带C循环右移,结果存入F本身(d=1)或W(d=0)。 |
C |
|
BCF F,B |
将F中第B位清0 |
将寄存器的第B位清为0 |
- |
|
BSF F,B |
将F中第B位置1 |
将寄存器的第B位置1 |
- |
|
程 序 跳 转 类 |
INCFSZ F,d |
F+1→d,结果若为0则跳一步 |
F寄存器的内容加1后,结果存入F本身(d=1)或W(d=0)。如结果为0则跳过下一条指令,否则顺序执行 |
- |
|
DECFSZ F,d |
F-1→d,结果若为0则跳一步 |
F寄存器的内容减1后,结果存入F本身(d=1)或W(d=0)。如结果为0则跳过下一条指令,否则顺序执行 |
- |
|
BTFSC F,B |
F中第B位为0,则跳一步 |
测试F寄存器的第B位。若F(B)=0,则跳过下一条指令,否则顺序执行 |
- |
|
BTFSS F,B |
F中第B位为1,则跳一步 |
测试F寄存器的第B位。若F(B)=1,则跳过下一条指令,否则顺序执行 |
- |
|
CALL K |
调用子程序 |
首先将PC+1推入堆栈,然后将11位常数K送入PC(10~0),同时将PCLATH(4,3)→PC(12,11),从而使PC=子程序入口地址 |
- |
|
GOTO K |
无条件跳转 |
将11位常数K送入PC(10~0),同时将PCLATH(4,3)→PC(12,11),从而使PC=新地址 |
- |
|
RETURN - |
从子程序返回 |
将堆栈顶端单元的内容弹出并送入PC,从而返回主程序断点处 |
- |
|
RETLW K |
W带参数子程序返回 |
将堆栈顶端单元的内容弹出并送入PC,同时8位常数K→W,从而带着参数返回主程序断点处 |
- |
|
RETFIE - |
从中断服务子程序返回 |
将堆栈顶端单元的内容弹出并送入PC,从而返回主程序断点处,同时将全局中断使能位GIE置1,从新开放中断 |
- |
|
控 制 类 |
SLEEP - |
进入睡眠方式 |
该指令执行后,单片机进入低功耗睡眠模式,时基电路停振 |
TO,PD |
|
CLRWDT - |
0→WDT |
将WDT寄存器和分配给它的预分频器同时清为全0 |
TO,PD |
|
NOP - |
空操作 |
空操作 |
|