当前位置:文档之家› PIC16系列单片机汇编指令集-包括部分伪指令-很有帮助(整理的)2011

PIC16系列单片机汇编指令集-包括部分伪指令-很有帮助(整理的)2011

PIC16系列单片机汇编指令集-包括部分伪指令-很有帮助(整理的)2011.txt大人物的悲哀在于他们需要不停地做出选择;而小人物的悲哀在于他们从来没有选择的机会。

男人因沧桑而成熟,女人因成熟而沧桑。

男人有了烟,有了酒,也就有了故事;女人有了钱,有了资色,也就有了悲剧。

当D不写时默认是放到F中吗?好像是.
更新:1,PIC16没有同或指令;
面向字节
ADDWF F,D ;寄存器加法指令,F+W→D 影响C,DC,Z 进位C为1表示有进位
INCF F,D ;寄存器加1指令F+1→D
SUBWF F,D ;减法指令F-W→D 影响C,DC,Z 进位C为0表示有借位.则F<W 那么W等于多少呢?
DECF F,D ;寄存器减1指令F-1→D 影响Z
ANDWF F,D ;F里的内容和W里的内容相与结果存入F(d=1)或(d=0),F∧W→d,影响Z 不带进位的加法,在PIC18系列中才有带进位加法指令.
IORWF F,D ;F内容和W内容相或,F∨W→d,影响Z
XORWF F,D ;F内容与W内容异或F⊕W→D, 位异或,影响Z位即是只要相异就为真
0⊕1=1和1异或则取反0⊕0=0和0异或则保持不变
1⊕1=01⊕0=1
面向常数
ADDLW K ;常数加法指令,8位立即数和W内容相加,结果存入W K+W→W,影响C,DC,Z
SUBLW K ;8位立即数减掉W内容,存入W, K-W→W,影响C,DC,Z
ANDLW K ;常数逻辑与K∧W→W 影响Z
IORLW K ;常数逻辑或K∨W→W 影响Z
XORLW K ;常数逻辑异或K⊕W→W 影响Z
CLRW ;寄存器W被清零
CLRWDT ;看门狗定时器清零(若已赋值,同时清零预分频器)
CLRF F ;寄存器F清零指令
BCF F,b ;把寄存器F的第b位清零 Bit Clear F
MOVLW K ;传送立即数(或常数,标号)至工作寄存器W MOVE Literal to W
TRIS F ;把W的内容送I/O口控制寄存器F Load TRIS Register ;好像没有这个指令;
MOVWF ;是MOVE W的内容TO F,(W内容保持不变),如MOVWF 6 (F6表示RB口) 不影响状态位.
MOVF F,D ;D=0,F内容送W. D=1,F内容送寄存器影响Z
NOP ;空操作,PC加1,占用一个机器周期
GOTO K ;无条件跳转指令,将指令转移到指定地址,“K"常与程序中的标号联系起来。

DECFSZ F,D ;寄存器内容减1存入W(D=0)或F(D=1)中,若指令执行结果减1不为零,指令顺序执行
;为零时,就间跳下一条指令后再执行(等效顺序执行一条空指令NOP).实际指令中,
;当D=1时该项常略去。

Decrement f,Skip of not 0 影响Z
INCFSZ F,D ;F内容加1,结果不为零则顺序执行,为零则指令间跳执行。

(FF+1就会变为0)影响Z
RETLW K ;(带立即数的)子程序返回指令,该指令代表子程序返回,返回前先把8位立即数送W
SWAPF F,D ;寄存器F的高4位与低4位交换,结果存入W(D=0)或F(D=1)中。

用于中断现场保护。

CALL K ;子程序调用指令,K为立即数地址,不同型号芯片的实现方法不尽相同,其共同点是首先将返回地址((PC)+1)压栈保护,再转入所调用的子程序入口地址执行
( MCS-51相似)
COMF F,D ;寄存器内容取反指令(每一位都取反);寄存器F内容取反后送入W(D=0)或F自身(D=1)
BSF F,b ;位置1指令,寄存器F的b位置1 Bit Set F
BTFSC F,b ;测试寄存器F位"b",如为0,跳过下一条指令,为1顺序执行(该指令引用两个指令周期)
Bit Test, Skip if Clear
BTFSS F,b ;位测试F(b)=1就间跳执行,如F(b)=0则顺序执行。

Bit Test, Skip if Set RLF F,D ;将F寄存器带进位C循环左移,结果存入F本身(d=1)或W(d=0);
RRF F,D ;将F寄存器带C循环右移,结果存入F本身(d=1)或W(d=0);
RETURN ;子程序返回指令,将堆栈顶单元内容弹出并送入PC,从而返回主程序断点处。

RETFIE ;中断服务子程序返回指令,将堆栈顶单元内容弹出送入PC,从而返回主程序断点处,同时
将全局中断使能位GIE置1,重新开放中断,栈顶→PC,1→GIE
SLEEP ;该指令执行后,单片机进入低功率睡眠模式,时基电路停振0→PD非,1→TO 非,
0→WDT,0→WDT预分频器,影响状态位TO非,PD非。

PIC伪指令
ORG 格式:<标号>ORG<地址表达式
;ORG用于指定该伪指令后面的源程序存放的起始地址,也就是汇编后的目标机器码存放的首地址。

ORG后面不带地址参数则默认为0;若ORG后面带标号则地址参数也赋值给该标号。

在一个源程序中,可以根据需要多次使用ORG伪指令来定位。

END ;告诉MPASM结束对源程序(asm)的汇编,即使后面还有语句,也不给予汇编。

源程序必须
有END,而且只能有一个,且在程序最后。

EQU 格式:〈标号〉EQU<表达式>
给标号或寄存器赋值,标号一旦由EQU赋值,其值便不能再重新定义。

LIST 列表选择指令
格式:LIST<选择项>,...,<选择项>
用来设置各种汇编参数以控制汇编过程,或对列表文件进行格式化,此伪指令的所有参数只
能在一行内完成,参数的数值都由十进制设置。

如LIST f=1NHX8M, r=DEC, p=16F84
固化编程文件格式设置常数数制的基数(如HEX,DEC)设置单片机类型
PROCESSOR<处理器类型>
用于选择单片机的型号
INCLUDE 包含其它外部源文件。

格式:INCLUDE"文件名"
INCLUDE<文件名>
用于把指定文件读入源程序中作为源程序代码的一部分,直到检测到文件结束符时
为止,再恢复到原源程序的代码处,此伪指令可允许嵌套使用,最多可嵌套6层。

如举例:include"c:\pic\sysdefs.inc"
include<picreg.h>
一、在35条指令中,5条实现无条件跳转的必然引起程序执行顺序发生改变的指令(GOTO, CALL
,RETURN ,RETLW,RETFIE)为两个指令周期.
二、有可能引起程序执行顺序发生改变的4条条件跳转指令(DECFSZ,INCFSZ,BTFSC,BTFSS),执行时间
随条件而定,当条件为真发生跳转时需要占用2个指令周期,当条件为假不发生跳转时仅占用一个
指令周期。

三、其余的全部仅仅占用一个指令周期。

相关主题