新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC16F 8位單片機匯編指令集

        PIC16F 8位單片機匯編指令集

        作者: 時間:2016-12-02 來源:網絡 收藏
        1。ADDWF f, d,f寄存器內容與W寄存器相加,d=1時結果放在f,d=0是結果在W,影響STATUS的C,DC和Z標志。該條指令影響的狀態與MCS51一致,有進位時C=1,有半進位時DC=1;否則相反。結果為0時Z標志置位。
        2。 ANDWF f, d,f寄存器內容與W寄存器相與,d=1時結果回存至f,d=0時結果存至W,結果影響STATUS的Z標志位。
        3。CLRF ( CLEAR File Register), 清空頁寄存器,STATUS的Z標志位置位
        4。CLRW (CLEAR WREG),清空W寄存器,STATUS的Z標志位置位,可以用MOVLW 0H等同使用
        5。COMF f, d,f寄存器內容取反,d=1時結果存至f寄存器,d=0時結果存至W寄存器。影響Z標志位。
        6。DECF f, d,f寄存器內容自減1,d=1時結果存放于f;d=0時結果存放于w,影響STATUS的Z標志位。
        7。DECFSZ f, d f寄存器內容自減1,為0則跳行,d=1時結果在f寄存器;d=0時結果在W寄存器。不影響標志位。
        8。INCF f, d,f寄存器內容自加1,d=1時結果回存至f,d=0時結果在W。影響Z標志位。
        9。INCFSZ f, d,f寄存器內容自加1,結果為0則跳行。d=1時結果回存至f;d=0時結果存至W寄存器。該指令不影響標志位。
        10。IORWF f, d,f寄存器內容與W寄存器相或,d=1時結果回存至f,d=0時結果存至W,結果影響STATUS的Z標志位。
        11。MOVF f, d,當d=1時,f寄存器內容不變,d=0時f寄存器內容復制到W寄存器。當d=1時,只改變Z標志位,可以用與判斷f寄存器內容是否為0。
        12。MOVWF , f (MOVE WREG to File Register),很常用的一條指令,將W寄存器的內容保存到RAM中去
        13。NOP,沒什么可說的,空操作而已,但是確實很常用的語句,短延時必須的。
        14。RLF f, d,循環左移指令,f的最高位移到C,原來C的內容移到f的最低位。與MSC51的循環左移指令功能一致。結果影響C標志。
        15。RRF f, d, 循環右移指令,f的最低位移到C,原來C的內容移到f的最高位。與MCS51的循環右移指令功能一致。結果影響C標志。
        16。SUBWF f, d ,f-W結果存放取決于d,當d=1時結果存在f里,0時存在W里,指令影響STATUS的C、DC、Z標志位,有借位時C=0,有半借位時DC=0;無借位和半借位時真好相反。這點與MCS51系列的單片機有些不同,用時需注意。當兩數相等時Z=1。
        17。SWAWF f, d, 字節交換指令,f的高低字節交換,結果不影響標志位。該條指令在中斷斷點保存和恢復中很重要,而且只能使用該指令。在下篇將給出介紹。
        18。XORWF f, d,f寄存器內容與W寄存器異或,d=1時結果存至f,d=0時結果存至W,影響STATUS的Z標志位,該條指令我常用來比較是否與一個數相等,利用同0異1的原理。
        19。BCF f, b,清零f寄存器的第b位。指令不影響任何標志位,四條位操作指令在程序設計中有極其重要的作用,被廣泛應用。
        20。BSF f, b,置位f寄存器的第b位。指令不影響任何標志位。
        21。BTFSCf, b,測試f寄存器的第b位,為0則跳行,指令不影響任何標志位。
        22。BTFSS f, b,測試f寄存器的第b位,為1則跳行,指令不影響任何標志位。
        23。ADDLW k,W加立即數k,結果在W寄存器內,有進位,半進位時C,DC為1,否則0;結果為0時Z=1。
        24。ANDLW k,W與立即數k相與,結果在W寄存器,影響Z標志位。
        25。CALL k,調用子程序,k為子程序的入口地址,不影響任何標志位,但是改指令執行需要兩個指令周期,因為在跳轉之前需要保存當前得返回地址。
        26。CLRWDT看門狗定時器清0,影響STATUS寄存器的TO和PD標志位。兩個標志位均置位。
        27。GOTO k,跳轉到指定地址處,不影響標志位。雙周期指令。
        28。IORLW k,W寄存器與立即數k相或,結果在W寄存器,影響Z標志位。
        29。MOVLW k,立即數k賦給W寄存器,不影響標志位。
        30。RETFIE,中斷返回指令,沒啥說的。中斷服務程序最后一句。
        31。RETLW k,立即數k送W寄存器,子程序返回,該條指令很特別哈,也比較有意思的餓,查表必用。
        32。RETURN,子程序返回指令。
        33。SLEEP,進入休眠模式。影響STATUS的TO和PD標志位,TO=1,PD=0。
        34。SUBLW, k,立即數減去W,結果在W寄存器,標志位影響與SUBWF指令一致,不再贅述。
        35。XORLW k,立即數k與W寄存器異或,結果在W寄存器,影響Z標志位。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 庄河市| 安岳县| 姜堰市| 炎陵县| 商水县| 兴隆县| 南充市| 关岭| 东丰县| 吉安县| 思南县| 雅江县| 潮安县| 湄潭县| 泗水县| 崇左市| 安陆市| 天长市| 宁城县| 丽江市| 高唐县| 杭州市| 长宁区| 襄汾县| 盐亭县| 调兵山市| 龙里县| 凤阳县| 甘谷县| 新宁县| 论坛| 弋阳县| 元朗区| 汨罗市| 阿拉善左旗| 阿拉善盟| 永康市| 闵行区| 汾西县| 珲春市| 聊城市|