PIC中檔單片機匯編指令詳解(5)
BCF 數(shù)據(jù)寄存器指定位清0
本文引用地址:http://m.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)標(biāo)志影響:無
說明:該指令可對任何數(shù)據(jù)寄存器的任意一個位置清0,常用于標(biāo)志位的設(shè)定和清除,或者把某一管腳置成低電平。
指令范例:BCF STATUS,C ;進位(借位)標(biāo)志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)標(biāo)志影響:無
說明:該指令可對任何數(shù)據(jù)寄存器的任意一個位置置1,常用于標(biāo)志位的設(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)標(biāo)志影響:無
說明:該指令可以對數(shù)據(jù)寄存器的任意一位做0/1的判斷,如果數(shù)據(jù)位為1,程序?qū)错樞驁?zhí)行其下一條指令,此時一個指令周期;如果數(shù)據(jù)位為0,那么將跳過緊跟該指令之后的第一條指令,從第二條指令開始執(zhí)行,此時使用兩個指令周期。該指令最常用于按標(biāo)志位實現(xiàn)程序的分支跳轉(zhuǎn)的控制。
指令范例:
BTFSC STATUS,Z ;測試狀態(tài)寄存器的Z標(biāo)志
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)標(biāo)志影響:無
說明:該指令可以對數(shù)據(jù)寄存器的任意一位做0/1的判斷,如果數(shù)據(jù)位為0,程序?qū)错樞驁?zhí)行其下一條指令,此時一個指令周期;如果數(shù)據(jù)位為1,那么將跳過緊跟該指令之后的第一條指令,從第二條指令開始執(zhí)行,此時使用兩個指令周期。該指令最常用于按標(biāo)志位實現(xiàn)程序的分支跳轉(zhuǎn)的控制。
指令范例:
BTFSS PORTB,7 ;測試PORTB端口,位7
GOTO RB7_Low ;如果RB7=0,執(zhí)行此處指令
GOTO RB7_High ;如果RB7=1,執(zhí)行此處指令
評論