新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC中檔單片機匯編指令詳解(5)

        PIC中檔單片機匯編指令詳解(5)

        作者: 時間:2016-11-19 來源:網絡 收藏
        位操作指令詳述

        BCF 數據寄存器指定位清0

        本文引用地址:http://www.104case.com/article/201611/318560.htm

        語法形式: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,執行此處指令



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 开封市| 綦江县| 新津县| 阿克| 江油市| 泾川县| 临城县| 平果县| 千阳县| 张家口市| 洞口县| 同心县| 海原县| 贵阳市| 杂多县| 长白| 家居| 碌曲县| 大埔县| 金溪县| 吴桥县| 高碑店市| 五大连池市| 休宁县| 酉阳| 云阳县| 乌拉特前旗| 区。| 繁昌县| 岐山县| 肥西县| 剑河县| 伊金霍洛旗| 兴业县| 武清区| 孟州市| 石渠县| 荣昌县| 札达县| 子长县| 会东县|