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,執行此處指令

相關文章
相關標籤/搜索