|
1. ADDWF [ Add w to f ] โค้ด 0001 11df ffff ขนาด1 ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ (w+f) - d บิตสถานะ C,D,C,Z ความหมาย บวกค่าข้อมูลรีจิสเตอร์ f ถ้าเป็น 0 ผลลัพธ์จะเก็บในรีจิสเตอร์ถ้า d เป็น 1 จะเก็บ ในรีจิสเตอร์ f 2. ANDLW [ AND ค่าคงที่ กับ w ] โค้ด1110 kkkkk kkkk ขนาด1 ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ (w AND K) - W บิตสถานะ Z ความหมาย ข้อมูลในรีจิสเตอร์ w จะถูก AND กับค่าคงที่ k ขนาด 8 บิต ข้อมูลที่ได้จะเก็บอยู่ ในรีจิสเตอร์ W 3. ANDWF [ AND W กับ f ] โค้ด 0001 01df ffff ขนาด1 ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ (w AND f) - d บิตสถานะ Z ความหมาย ข้อมูลในรีจิสเตอร์ w จะ AND รีจิสเตอร์ f ถ้า d เป็น0 ผลลัพธ์จะเก็บในรีจิสเตอร์ w ถ้าdเป็น 1 จะเก็บในรีจิสเตอร์ f 4. BCS [ เคลียร์บิตที่ชี้โดย รีจิสเตอร์ f ] โค้ด 0100 bbbf ffff ขนาด1 ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ 0 -f(b) บิตสถานะ ไม่มี ความหมาย บิตb ในรีจิสเตอร์ f จะถูกเปลี่ยนให้เป็น 0 5. BSF [ เซ็ตบิตที่ชี้โดย รีจิสเตอร์ f ] โค้ด 0101 bbbf ffff ขนาด1 ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ 1 -f(b) บิตสถานะ ไม่มี ความหมาย บิต b ในรีจิสเตอร์ f จะถูกเปลี่ยนให้เป็น 1 6. BTFSC [ ทดสอบบิต ข้าม 1 คำสั่งถ้าเคลียร์ ] โค้ด 0110 bbbf ffff ขนาด1 ไบต์ สัญญาณนาฬิกา 1 หรือ 2 ลูก รูปแบบ กระโดดข้ามถ้า f(b) = 0 บิตสถานะ ไม่มี ความหมาย ถ้าบิตในรีจิสเตอร์ f เป็น 0 คำสั่งถัดไปจะถูกข้าม 7. BTFSS [ ทดสอบบิต ข้าม 1 คำสั่งถ้าเซ็ต ] โค้ด 0111 bbbf ffff ขนาด1 ไบต์ สัญญาณนาฬิกา 1 หรือ 2 ลูก รูปแบบ กระโดดข้ามถ้า f(b) =1 บิตสถานะ ไม่มี ความหมาย ถ้าบิตในรีจิสเตอร์ f เป็น 1 คำสั่งถัดไปจะถูกกระโดดข้าม 8. CALL [ เรียกใช้งานโปรแกรมย่อย ] โค้ด1001 kkkk kkkk ขนาด1 ไบต์ สัญญาณนาฬิกา 2 ลูก รูปแบบ PC+1 บิตสถานะ ไม่มี ความหมาย เรียกใช้โปรแกรมย่อยโดยการเก็บตำแหน่งแอคเดสถัดไปไว้ในสแต็ป จากนั้นค่าคงที่จะถูกโหลดไว้ที่รีจิสเตอร์ PC ขนาด 7 บิตโดยบิตที่ 8 จะเป็น 0 9. CRLF [ เคลียร์รีจิสเตอร์ f ] โค้ด 0000 011f ffff ขนาด1 ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ 00h---f บิตสถานะ ไม่มี ความหมาย ค่าในรีจิสเตอร์ f จะถูกเปลี่ยนให้เป็น 0 10. CLRW [ เคลียร์รีจิสเตอร์ w ] โค้ด 0000 0100 0000 ขนาด1 ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ 00h---w บิตสถานะ Z ความหมาย ค่าในรีจิสเตอร์ w จะถูกเปลี่ยนให้เป็น 0 และบิต Zero จะเซ็ตเป็น 1 11. CLRWDT [ เคลียร์วอตช์ดอกไทเมอร์ ] โค้ด 0000 0000 0100 ขนาด1 ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ 00h---wdto---wdt prescaler บิตสถานะ 1-to.1---PO ความหมาย ค่าของวอตช์ดอกไทเมอร์และค่าปรีสเกลเลอร์ของวอตช์ดอกไทเมอร์จะถูกรีเซ็ต 12. COMF [ Complement ค่าในรีจิสเตอร์ f ] โค้ด 0010 010f ffff ขนาด1 ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ f---d บิตสถานะ z ความหมาย ค่าในรีจิสเตอร์ f จะถูกคอมพลีเมนต์ ถ้า d เป็นศูนย์ ผลลัพธ์จะถูกเก็บเป็นรีจิสเตอร์ W ถ้าd เป็น 1 ผลลัพธ์จะเก็บเป็นรีจิสเตอร์ f 13. DECF [ ลดค่าในรีจิสเตอร์ f ลง 1 ] โค้ด 0000 11df ffff ขนาด1 ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ (fb) ---d บิตสถานะ z ความหมาย เป็นการลดค่าในรีจิสเตอร์ f ลง 1 ถ้า d มีค่าเป็น 0 ผลลัพธ์จะเก็บในรีจิสเตอร์ w แต่ถ้าd เป็น 1 จะเก็บในรีจิสเตอร์ f 14. DECFSZ [ ลดค่าในรีจิสเตอร์ f ลง 1 และข้าม 1 คำสั่งถ้าเป็น 0 ] โค้ด 0010 11df ffff ขนาด1 ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ (f-1) ---d กระโดดข้ามถ้าผลลัพธ์เป็น 0 บิตสถานะ ไม่มี ความหมาย เป็นการลดค่าที่เก็บในรีจิสเตอร์ f ลงถ้า d เป็น 0 ผลลัพธ์จะเก็บในรีจิสเตอร์ w แต่ถ้า d เป็น 1 จะเก็บในรีจิสเตอร์ fถ้าผลลัพธ์เท่ากับ 0 คำสั่งถัดไปจะถูกข้าม 15. GOTO [ กระโดดไปยัง ] โค้ด 101k kkkk kkkk ขนาด1 ไบต์ สัญญาณนาฬิกา 2 ลูก รูปแบบ k-PC<8.0>,pa2,pa1,pa0---PC<11.9>; บิตสถานะ ไม่มี ความหมาย กระโดดไปยังแอคเดรสที่ชี้โดยค่าคงที่ขนาด9 บิต 16. INCF [ เพิ่มค่าในรีจิสเตอร์ f ขึ้น 1 ] โค้ด 0010 10df ffff ขนาด1 ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ (f+1)d บิตสถานะ z ความหมาย เป็นการเพิ่มค่าที่เก็บในรีจิสเตอร์ f ขึ้น ถ้าd มีค่าเป็น 0 ผลลัพธ์จะเก็บในรีจิสเตอร์ w ถ้าd เป็น 1 จะเก็บในรีจิสเตอร์ f 17. INCFSZ [ เพิ่มค่าในรีจิสเตอร์ f ] ขึ้น 1 กระโดดข้ามถ้าเป็น 0 โค้ด 0010 11df ffff ขนาด1 ไบต์ สัญญาณนาฬิกา 1หรือ 2 ลูก รูปแบบ (f+1)-d กระโดดข้ามถ้าผลลัพธ์เป็น 0 บิตสถานะ ไม่มี ความหมาย เพิ่มค่าในรีจิสเตอร์ f ขึ้น 1ถ้าd เป็น 0 ผลลัพธ์จะเก็บในรีจิสเตอร์ w แต่ถ้าd เป็น 1 จะเก็บในรีจิสเตอร์ f ถ้าผลลัพธ์เท่ากับ 0 คำสั่งถัดไปจะถูกกระโดดข้าม |
18. IORLW [ OR ค่าคงที่ กับ w ] โค้ต 1101 kkkkk kkkk ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ (w or k) ---w บิตสถานะ Z ความหมาย ข้อมูลในรีจิสเตอร์ w จะ OR กับค่าคงที่ k ขนาด 8 บิตผลลัพธ์จะเก็บในรีจิสเตอร์ w 19. IORWF [ OR W กับ f ] โค้ต 0001 00df ffff ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ (w or f) ---d บิตสถานะ Z ความหมาย ข้อมูลในรีจิสเตอร์ w กับรีจิสเตอร์ f ถ้า d เป็น 0 ผลลัพธ์จะเก็บในรีจิสเตอร์ w แต่ถ้า d เป็น1 จะเก็บในรีจิสเตอร์ f 20.MOVF [ ย้ายข้อมูลในรีจิสเตอร์ f ] โค้ต 0010 00df ffff ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ (f) ---d บิตสถานะ Z ความหมาย ค่าข้อมูลในรีจิสเตอร์ f จะถูกย้ายถ้า d มีค่าเป็น 0 ผลลัพธ์จะเก็บในรีจิสเตอร์ w ถ้า d เป็น1 จะเก็บในรีจิสเตอร์ f 21. MOVLW [ ย้ายข้อมูลใน รีจิสเตอร์ f ] โค้ต 1100 kkkk kkkk ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ k---w บิตสถานะ ไม่มี ความหมาย ค่าคงที่ k จะเคลื่อนย้ายไปรีจิสเตอร์ w 22. MOVWF [ ย้ายข้อมูลในรีจิสเตอร์ W ไปยัง รีจิสเตอร์ f ] โค้ต 0000 001f ffff ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ w---f บิตสถานะ ไม่มี ความหมาย ข้อมูลในรีจิสเตอร์ W จะเคลื่อนย้ายไปยังรีจิสเตอร์ 23. NOP [ ไม่มีการทำงาน ] โค้ต 0000 0000 0000 ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ ไม่มีการทำงาน บิตสถานะ ไม่มี ความหมาย ไม่มีการทำงาน 24. OPTION [ โหลดค่า รีจิสเตอร์ OPTION ] โค้ต 0000 0000 0010 ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ w---option บิตสถานะ ไม่มี ความหมาย ข้อมูลในรีจิสเตอร์ w จะโหลดไปยังรีจิสเตอร์ OPTION 25. RETLW [ ย้อนกลับและนำค่าเข้า รีจีสเตอร์ w ด้วย k ] โค้ต 1000 kkkk kkkk ขนาด 1ไบต์ สัญญาณนาฬิกา 2 ลูก รูปแบบ k---w: Tos----PC บิตสถานะ ไม่มี ความหมาย ข้อมูลในรีจิสเตอร์ w จะ โหลดด้วยค่าคงที่ขนาด 8 บิตและโปรแกรมเคาน์เตอร์จะนำค่าที่เก็บไว้ในสเต็คคืน 26. RLF [ Rotate Left วนซ้าย รีจิสเตอร์ f คิดค่า Carry ด้วย ] โค้ต 0011 00df ffff ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ f<n>---d<n> f<o>----cc-d<o> บิตสถานะ c ความหมาย ข้อมูลในรีจิสเตอร์ จะถูกเลื่อนไปด้านซ้าย 1 บิตคิดแฟลกตัวทดถ้า d เป็น 0 ผลลัพธ์จะเก็บในรีจิสเตอร์ w แต่ถ้า d เป็น1 จะเก็บในรีจิสเตอร์ f 27. RRF [ Rotate Right วนขวา รีจิสเตอร์ f คิดค่า Carry ด้วย ] โค้ต 0011 00df ffff ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ f<n>---d<n-1> f<o>----cc-d<1> บิตสถานะ c ความหมาย ข้อมูลในรีจิสเตอร์ fจะถูกเลื่อนไปด้านขวา 1 บิต คิดแฟลกตัวทดถ้า d เป็น 0 ผลลัพธ์จะเก็บในรีจิสเตอร์ w แต่ถ้า d เป็น1 จะเก็บในรีจิสเตอร์ f 28. SLEEP [ เข้าโหมด Sleep ] โค้ต 0000 0000 0011 ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ 0---po:;1---to,00h---WDT0-WDT prescaller บิตสถานะ TO,PO ความหมาย ระบบประหยัดพลังงาน บิต วอตช์ ดอกไมเมอร์และวอตช์ดอกปริสเกอเลอร์ จะเคลียร์บิต to จะเซ็ต ไมโครโปรเซสเซอร์ จะเข้าสู่โหมด SLEEP 29. SUBWF [ ลบค่า w จาก f ] โค้ต 0000 10df ffff ขนาด 1รีจิสเตอร์ ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ (f-w)--d บิตสถานะ c,dc,z ความหมาย ทำ 2' Complement รีจิสเตอร์ w จากรีจิสเตอร์ f ถ้า d มีค่าเป็น 0 ผลลัพธ์จะเก็บในรีจิสเตอร์ w แต่ถ้า d เป็น1 จะเก็บในรีจิสเตอร์ f 30. SWAP [ Swap f ] โค้ต 0000 10df ffff ขนาด 1รีจิสเตอร์ ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ f <0:3>--d<4:7>--d<0:3> บิตสถานะ ไม่มี ความหมาย สลับระหว่าง 4 บิตบนกับ 4 บิตล่างในรีจิสเตอร์ f ถ้า d มีค่าเป็น 0 ผลลัพธ์จะเก็บในรีจิสเตอร์ w แต่ถ้า d เป็น1 จะเก็บในรีจิสเตอร์ f 31. TRIS [ โหลดรีจิสเตอร์ TRIS ] โค้ต 0000 0000 0fff ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ w--TRIS register f บิตสถานะ ไม่มี ความหมาย TRIS รีจิสเตอร์ f(f=5,6.7) จะโหลดค่าในรีจิสเตอร์ w 32. XORLW [ Exclusive OR ค่าคงที่กับ w ] โค้ต 1111 kkkk kkkk ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ (W xor k)----w บิตสถานะ z ความหมาย ค่าข้อมูลที่อยู่ในรีจิสเตอร์ w จะถูก xor กับค่าคงที่ k ขนาด 8 บิต ข้อมูลที่ได้จะเก็บอยู่ในรีจิสเตอร์ w 33. XORWF [ Exclusive OR w กับ F ] โค้ต 0001 10df ffff ขนาด 1ไบต์ สัญญาณนาฬิกา 1 ลูก รูปแบบ (W xor f)--d บิตสถานะ z ความหมาย ค่าข้อมูลที่อยู่ในรีจิสเตอร์ w จะถูก xor รีจิสเตอร์ fถ้า d มีค่าเป็น 0ผลลัพธ์จะเก็บในรีจิสเตอร์ w ถ้า dเป็น1 จะเก็บในรีจิสเตอร์ f |
|