汇编指令

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的缩写;

相关文档
最新文档