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標志位。