汇编指令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•应用
注册
用户名密码
•HOHO
•照片PK
•分享
•投票
•测试
•礼物
•开心部落
•汽车工厂
•七彩鱼
更多•网页游戏
分享
•热门分享
•最新分享
•好友的分享
•我的分享
如何分享?问题反馈
shxc_3的分享
分享
PIC常用汇编指令
PIC常用汇编指令
常用指令
1.寄存器加1指令:INCF
【格式】INCF F,d
【功能】寄存器F加1
【说明】
(1)INCF是Increment F的缩写;
(2)在PIC系列8位单片机中,常用符号F代表片内的各种寄存器和F的序号地址;(3)d=0时,结果存入W;d=1时,结果存入F。
【实例】INCF PORTC,1 ;将PORTC加1
2.寄存器减1指令:DECF
【格式】DECF F,d
【功能】寄存器F减1
【说明】
(1)DECF是Decrement F的缩写;
(2)d=0时,结果存入W;d=1时,结果存入F。
【实例】ENCODER EQU 0X21
……
DECF ENCODER,1 ;将ENCODER减1
3.寄存器清零指令:CLRF
【格式】CLRF F
【功能】寄存器清零
【说明】
(1)CLRF是Clear F的缩写;
(2)F寄存器被清为全0,使状态位Z=1。
【实例】CLRF TRISC ;对TRISC 清零
4.W清零指令:CLRW
【格式】CLRW
【功能】寄存器W清零
【说明】
(1)CLRW是Clear W的缩写;
(2)W为PIC单片机的工作寄存器;
(3)W寄存器被清为全0,使状态位Z=1。
【实例】CLRW ;W=00H
5.F寄存器传送指令:MOVF
【格式】MOVF F,d
【功能】将F寄存器内容传送到F或W
【说明】
(1)MOVF是Move F的缩写;
(2)当d=1时,传到F本身;当d=0时,传到W;
(3)影响状态位Z
【实例】MOVF PORTB,0 ;PORTB口内容送W MOVWF PORTA;W内容即PORTB口内容送PORTA
6.W寄存器传送指令:MOVWF
【格式】MOVWF F
【功能】W寄存器传送
【说明】
(1)MOVWF是Move W to F的缩写;
(2)将W寄存器内容传到F,W内容不变;
(3)不影响状态位。
【实例】MOVLW 0x0B ;送0BH送W
MOVWF PORTB ;送W内容到PORTB口
7.递增跳转指令:INCFSZ
【格式】INCFSZ F,d
【功能】递增跳转
【说明】
(1)INCFSZ是Increment F,Skip if 0的缩写;
(2)F寄存器内容加1后,当d=1时结果存入F,当d=0时存入W;(3)若结果为0则跳过下一条指令,否则顺序执行;
(4)影响状态位Z。
【实例】
LOOP INCFSZ COUNT1,1 ;COUNT1加1,结果存到COUNT1 GOTO LOOP;结果不为零,循环
MOVWF COUNT2 ;结果为零时,执行该语句
8.递减跳转指令:DECFSZ
【格式】DECFSZ F,d
【功能】递减跳转
【说明】
(1)DECFSZ是Decrement F,Skip if 0的缩写;
(2)F寄存器内容减1,结果存入F本身(d=1)或W(d=0);(3)如果结果为0则跳过下一条指令,否则顺序执行;
(4)影响状态位Z;
(5)实际指令中,当d=1时,该项常常被略去。
DELAY MOVLW 25 ;延时子程序
MOVWF N ;给N赋值25
LOOP DECFSZ N,1 ;N-1送回N并判结果=0?是!跳出循环GOTO LOOP ;否!循环回去
RETURN ;返回
9.位置1指令:BCF
【格式】BCF F,B
【功能】位清0
【说明】
(1)BCF是Bit Clear F的缩写;
(2)符号B是表示片内某个8位数据寄存器F的位号(或位地址);
(3)指令的意思是:将寄存器的第B位清0。
【实例】BCF REG1,2 ;把寄存器REG1的第2位清零
10.位清零指令:BSF
【格式】BSF F,B
【功能】位置1
【说明】(1)BSF是Bit Set F的缩写;
(2)将寄存器F的第B位置1。
【实例】BSF STATUS,RP0 ;设置文件寄存器的体1
11.位测试为零跳转指令:BTFSC
【格式】BTFSC F,B
【功能】位测试为0跳转
(1)BTFSC是Bit Test,Skip if Clear的缩写;
(2)测试F寄存器的第B位,若F(B)=0则调到下一条指令,否则顺序执行。【实例】
BTFSC PORTB,0 ;检测PORTB口中的第0位是否为0?
;是!跳过下一条指令
GOTO CHECK ;否!则转到标号为CHECK的语句
CALL DELAY ;PORTB的第0位是1则直接执行该语句,调用延时子程序
12.位测试为1跳转指令:BTFSS
【格式】BTFSS F,B
【功能】位测试位1跳转指令
【说明】
(1)BTFSS是Bit Test F,Skip if Set的缩写;
(2)测试F寄存器的第B位,若F(B)=1,则跳转到下一条指令,否则顺序执行。【实例】
BTFSS PORTB,0 ;检测PORTB口中的第0位是否为1?是!
;跳过下一条指令
GOTO CHECK ;否!则转到标号为CHECK的语句
CALL DELAY ;PORTB的第0位是1则直接执行该句,调用延时子程序
13.常数传送指令:MOVLW
【格式】MOVLW K
【功能】常数传送
【说明】(1)MOVLW是Move literal to W的缩写;