资源描述
PIC单片机指令(PIC16F87X系列单片机),共35条指令
指令构成:PIC16F877单片机每条指令的字节长度为14位,由操作码和操作数构成
操作码
操作数
指令系统补充字符说明
字符
功能说明
W
工作寄存器(即累加器)
f
寄存器地址(取7位寄存器地址,00H~7FH)
b
8位寄存器f内位地址(0~7)
K
立即数(8位常数或11位地址)、常量或标号
L
指令操作数中含有8位立即数K
d
目标地址选择:d=0,结果送至W;d=1,结果送至f
FSZ
寄存器f为0间跳
FSC
寄存器f的b位为0间跳
FSS
寄存器f的b位为1间跳
( )
表示寄存器的内容
(( ))
表示寄存器间接寻址的内容------((f ))表示以f的内容为地址的寄存器的内容
→
表示运算结果送至目标寄存器
数据传送类指令(4条)
助记符
操作说明
影响的状态位
MOVF f,d
f传送至d(d=0为W,d=1为F)
Z
MOVWF f
W传送至f
——
MOVLW K
立即数K传送至W
——
SWAPF f,d
f半字节交换至d(高四位和低四位交换)
——
算术运算类指令(6条)
助记符
操作说明
影响的状态位
ADDWF f,d
W加f至d
C,DC,Z
SUBWF f,d
f减W至d (减数都是W)F-W
C,DC,Z
ADDLW K
K加W至K
C,DC,Z
SUBLW K
K减W至K (减数都是W)L-W
C,DC,Z
INCF f,d
f加1至d
Z
DECF f,d
f减1至d
Z
逻辑运算类指令(共14条)
助记符
操作说明
影响的状态位
CLRF f
f清0
Z
CLRW ---
W清0
Z
CLRWDT ---
WDT清0
TO ,PD
BCF f,b
f 的b 位清0
——
BSF f,b
f 的b 位置位
——
RLF f,d
f 带C左循环
C
RRF f,d
f 带C右循环
C
ANDWF f,d
W“与”f 至d
Z
IORWF f,d
W“或”f 至d
Z
XORWF f,d
W“异或”f 至d
Z
ANDLW K
K“与” W 至W
Z
IORLW K
K“或” W 至W
Z
XORLW K
K“异或” W 至W
Z
COMF f,d
F取“反”至d
Z
说明:AND(∧)操作:有0则0,要清0的位置0,0为清0作用,1为保护作用;
IOR (∨)操作:有1则1,要置1的位置1,1为清0作用,0为保护作用;
XOR() AB=A&B+A&B:A、B相同为0,不同为1,要取反的位置1,其它位置0.
控制转移类指令(共11条)
助记符
操作说明
影响的状态位
CALL K
调用K处子程序(CALL子程序为2K字节内调用)
——
GOTO K
无条件跳转至K处
——
INCFSZ f,d
f加一至d,为0间跳
——
DECFSZ f,d
f减一至d,为0间跳
——
BTFSC f,b
f的b位,为0间跳
——
BTFSS f,b
f的b位,为1间跳
——
RETFIE —
—
中断返回
——
RETLW K
子程序返回(将立即数K传至W,返回原断点—对应CALL子程序)
——
RETURN ——
子程序返回(从CALL子程序返回)
——
NOP ——
空操作(仅有单条指令周期的延时)
——
SLEEP ——
进入休眠状态
TO,PD
系统伪指令
名称
格式
说明
定位伪指令
ORG nnnn
经汇编后生成的机器码目标程序或数据块在单片机程序存储器中的起始存放地址。
赋值伪指令
符号名 EQU nn
使EQU两端的值相等。符号名一旦被EQU赋值,其值便不可能再被重新定义。
程序结束伪指令
END
表示汇编语言源程序(*..ASM)的结束。在源程序中有且只有一条伪指令,在程序结尾。
列表选项伪
指令
LIST\[可选项,可选项,……\]
用于设置各种汇编参数,以便控制整个汇编过程或对打印输出的列表文件进行格式化。该伪指令所有参数只能在一行内书写完成。
外调程序伪指令
INCLUDE “文件名”
将外部预先编好的指定文件调入本源程序的汇编内容。调入的指定文件一般为PIC单片机的通用指定文件。各种类型的PIC单片机,软件开发系统都附带着相应的初始化文件,例如,P16F877.INC为PIC16F877单片机的复位矢量、专用寄存器的地址及其控制位和状态位的位地址的原始定义。该伪指令一般放在系统程序的首行,这样就不必考虑众多特殊功能寄存器及其位功能参数的定义,可以直接使用。初学者最好养成用符号量先定义后使用的习惯。
定义数据伪指令
DB(DW、DE、DATA)<表达式>, <表达式>,……
PIC16F877单片机中,DB的定义结果是错的,不适合PIC16F877单片机。DW和DATA定义方式只使用单字节和单字符的赋值定义。DE的功能最强,既可以进行单字节数据的定义,有适用于单字节以及字符串的赋值定义。
进制定义伪指令
RADIX <进制表达式>
RADIX伪指令用于设置在MPLAB-IDE集成开发环境中采用的进制方式,如定义十进制、八进制和十六进制参数等。MPLAB-IDE集成开发环境默认为十六进制。
RADIX DEC—十进制,RADIX HEX---十六进制,RADIX OCT---八进制。
体选伪指令
BNAKSEL ABC
直接选择ABC所在的体,无需考虑ABC所在的体位置。减少记忆。
页选伪指令
PAGESEL ABC
直接选择ABC所在的程序存储器的页,无需考虑ABC所在的页位置。减少记忆。
展开阅读全文