新聞中心

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

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

作者: 時間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
位操作指令詳述

BCF 數(shù)據(jù)寄存器指定位清0

本文引用地址:http://butianyuan.cn/article/201611/318560.htm

語法形式:BCF f,b

操作數(shù):f為數(shù)據(jù)寄存器的低7位地址(0x00~0x7F)

B為數(shù)據(jù)位編號(0~7)

執(zhí)行時間:一個指令周期

執(zhí)行過程:使數(shù)據(jù)寄存器f的的b位清0

狀態(tài)標志影響:無

說明:該指令可對任何數(shù)據(jù)寄存器的任意一個位置清0,常用于標志位的設(shè)定和清除,或者把某一管腳置成低電平。

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

BCF PORTD,7 ;PORTD的第7位輸出低電平

BSF 數(shù)據(jù)寄存器的指定位b置1

語法形式:BSF f,b

操作數(shù):f為數(shù)據(jù)寄存器的低7位地址(0x00~0x7F)

b為數(shù)據(jù)位編號(0~7)

執(zhí)行時間:一個指令周期

執(zhí)行過程:使數(shù)據(jù)寄存器f的的b位置1

狀態(tài)標志影響:無

說明:該指令可對任何數(shù)據(jù)寄存器的任意一個位置置1,常用于標志位的設(shè)定和清除,或者把某一管腳置成高電平。

指令范例:

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

BSF PORTD,6 ;PORTD第6位輸出高電平

BTFSC 判斷數(shù)據(jù)寄存器中的指定位,為0則跳過下一條指令

語法形式:BTFSC f,b

操作數(shù):f為數(shù)據(jù)寄存器的低7位地址(0x00~0x7F)

b為數(shù)據(jù)位編號(0~7)

執(zhí)行時間:一個指令周期或兩個指令周期

執(zhí)行過程:如果數(shù)據(jù)寄存器f的b位為0,則跳過下一條指令

狀態(tài)標志影響:無

說明:該指令可以對數(shù)據(jù)寄存器的任意一位做0/1的判斷,如果數(shù)據(jù)位為1,程序?qū)错樞驁?zhí)行其下一條指令,此時一個指令周期;如果數(shù)據(jù)位為0,那么將跳過緊跟該指令之后的第一條指令,從第二條指令開始執(zhí)行,此時使用兩個指令周期。該指令最常用于按標志位實現(xiàn)程序的分支跳轉(zhuǎn)的控制。

指令范例:

BTFSC STATUS,Z ;測試狀態(tài)寄存器的Z標志

GOTO Zero ;如果Z=1,執(zhí)行此處指令

GOTO NotZero ;如果Z=0,執(zhí)行此處指令

BTFSS 判斷數(shù)據(jù)寄存器的指定位,為1則跳過下條指令

語法形式:BTFSS f,b

操作數(shù):f為數(shù)據(jù)寄存器的低7位地址(0x00~0x7F)

b為數(shù)據(jù)位編號(0~7)

執(zhí)行時間:一個指令周期或兩個指令周期

執(zhí)行過程:如果數(shù)據(jù)寄存器f的b位為1,則跳過下一條指令

狀態(tài)標志影響:無

說明:該指令可以對數(shù)據(jù)寄存器的任意一位做0/1的判斷,如果數(shù)據(jù)位為0,程序?qū)错樞驁?zhí)行其下一條指令,此時一個指令周期;如果數(shù)據(jù)位為1,那么將跳過緊跟該指令之后的第一條指令,從第二條指令開始執(zhí)行,此時使用兩個指令周期。該指令最常用于按標志位實現(xiàn)程序的分支跳轉(zhuǎn)的控制。

指令范例:

BTFSS PORTB,7 ;測試PORTB端口,位7

GOTO RB7_Low ;如果RB7=0,執(zhí)行此處指令

GOTO RB7_High ;如果RB7=1,執(zhí)行此處指令



關(guān)鍵詞: PIC中檔單片機匯編指

評論


技術(shù)專區(qū)

關(guān)閉