zoukankan      html  css  js  c++  java
  • PIC中档单片机汇编指令详解(5)

    位操作指令详述

    BCF 数据寄存器指定位清0

    语法形式:BCF f,b

    操作数:f为数据寄存器的低7位地址(0x00~0x7F)

    B为数据位编号(0~7)

    执行时间:一个指令周期

    执行过程:使数据寄存器f的的b位清0

    状态标志影响:无

    说明:该指令可对任何数据寄存器的任意一个位置清0,常用于标志位的设定和清除,或者把某一管脚置成低电平。

    指令范例:BCF STATUS,C ;进位(借位)标志C清0

    BCF PORTD,7 ;PORTD的第7位输出低电平

    BSF 数据寄存器的指定位b置1

    语法形式:BSF f,b

    操作数:f为数据寄存器的低7位地址(0x00~0x7F)

    b为数据位编号(0~7)

    执行时间:一个指令周期

    执行过程:使数据寄存器f的的b位置1

    状态标志影响:无

    说明:该指令可对任何数据寄存器的任意一个位置置1,常用于标志位的设定和清除,或者把某一管脚置成高电平。

    指令范例:

    BSF INTCON,GIE ;INTCON寄存器的GIE位置1,打开全局中断

    BSF PORTD,6 ;PORTD第6位输出高电平

    BTFSC 判断数据寄存器中的指定位,为0则跳过下一条指令

    语法形式:BTFSC f,b

    操作数:f为数据寄存器的低7位地址(0x00~0x7F)

    b为数据位编号(0~7)

    执行时间:一个指令周期或两个指令周期

    执行过程:如果数据寄存器f的b位为0,则跳过下一条指令

    状态标志影响:无

    说明:该指令可以对数据寄存器的任意一位做0/1的判断,如果数据位为1,程序将按顺序执行其下一条指令,此时一个指令周期;如果数据位为0,那么将跳过紧跟该指令之后的第一条指令,从第二条指令开始执行,此时使用两个指令周期。该指令最常用于按标志位实现程序的分支跳转的控制。

    指令范例:

    BTFSC STATUS,Z ;测试状态寄存器的Z标志

    GOTO Zero ;如果Z=1,执行此处指令

    GOTO NotZero ;如果Z=0,执行此处指令

    BTFSS 判断数据寄存器的指定位,为1则跳过下条指令

    语法形式:BTFSS f,b

    操作数:f为数据寄存器的低7位地址(0x00~0x7F)

    b为数据位编号(0~7)

    执行时间:一个指令周期或两个指令周期

    执行过程:如果数据寄存器f的b位为1,则跳过下一条指令

    状态标志影响:无

    说明:该指令可以对数据寄存器的任意一位做0/1的判断,如果数据位为0,程序将按顺序执行其下一条指令,此时一个指令周期;如果数据位为1,那么将跳过紧跟该指令之后的第一条指令,从第二条指令开始执行,此时使用两个指令周期。该指令最常用于按标志位实现程序的分支跳转的控制。

    指令范例:

    BTFSS PORTB,7 ;测试PORTB端口,位7

    GOTO RB7_Low ;如果RB7=0,执行此处指令

    GOTO RB7_High ;如果RB7=1,执行此处指令

  • 相关阅读:
    怎样处理人际关系中的矛盾
    如何处理人际关系
    Python包含以下函数:
    与他人有效沟通的小技巧
    沟通时容易出现的问题
    如何在工作中提升自己
    第十三周进度报告
    第十二周学习进度
    团队绩效管理
    软件对标分析
  • 原文地址:https://www.cnblogs.com/wangluojisuan/p/3028092.html
Copyright © 2011-2022 走看看