PIC INSTRUCTIONS
This discussion explains the instructions for the PIC12F629 and PIC16F628.
 

addlw number
- adds a number (called a literal -  00 to FF) to the number in the working register.

addwf FileReg, f
- adds the number in the working register to the number in a file (FileReg) and puts the result in the file.

addwf FileReg, w
- adds the number in the working register to the number in a file (FileReg) and puts the result back into the working register, leaving the file register unchanged.

andlw number
- ANDs a number to the number in the working register, leaving the result in the working reg.

andwf FileReg, f
- ANDs the number in the working register to the number in a file (FileReg) and puts the result in the file register

bcf FileReg, bit
- clears a bit in a file (FileReg), i.e. makes the bit 0

bsf FileReg, bit
- sets a bit in a file (FileReg), i.e. makes the bit 1

btfsc FileReg, bit
- tests a bit in a file (FileReg) and skips the next instruction if the result is clear (i.e. if that bit is 0).

btfss FileReg, bit
- tests a bit in a file (FileReg) and skips the next instruction if the result is set (i.e. if that bit is 1).

call label
- makes the chip call any label, after which it will return to where it left off if the sub-routine contains
retlw 00.

clrf File
- clears (makes 0) the number in a file (FileReg).

clrw
- clears the working register.

clrwdt
- clears the watchdog timer.

comf FileReg, f
- complements (inverts - ones become zeroes, zeroes become ones) the number in a file (FileReg), leaving the result in the file register.

decf FileReg, f
- decrements (subtracts one from) a file (FileReg) and puts the result in the file register.

decfsz FileReg, f
- decrements a file (FileReg) and if the result is zero it skips the next instruction. The result is put in the file.

goto Label
- makes the chip go to a label in the program.

incf FileReg, f
- increments (adds one to) a file (FileReg) and puts the result in the file.

incfsz FileReg, f
- increments a file(FileReg) and if the result is zero it skips the next instruction. The result is put in the file.

iorlw number
- inclusive ORs a number with the number in the working register.

iorwf FileReg, f
- inclusive ORs the number in the working register with the number in a file(FileReg) and puts the result in the file.

movfw FileReg or movf FileReg, w
- moves (copies) the number in a file(FileReg) in the working register

movlw number
- puts a number into the working register.

movwf FileReg
- moves (copies) the number in the working register into a file (FileReg).

nop
- this stands for : no operation, in other words - do nothing, (it is used to create a delay)

option_reg
- takes the number in the working register and moves it into the option register.

retfie
- (NOT FOR PIC16C5X SERIES) - returns from a subroutine and enables the Global Interrupt Enable bit.

retlw number
- returns from a subroutine with a number (literal) (from 00 to FF) in the working register.

rlf FileReg, f
- rotates the bits in a file (FileReg) to the left, putting the result in the file.

rrf FileReg, f
- rotates the bits in a file(FileReg) to the right, putting the result in the file.

sleep
- sends the PIC to sleep, a lower power consumption mode.

sublw number
- subtracts the number in the working register from a literal. To subtract 1 from W, use: addlw   255

subwf FileReg, f
- subtracts the number in the working register from the number in a file (FileReg) and puts the result in the file.

swapf FileReg, f
- swaps the two halves of the 8 bit binary number in a file (FileReg), leaving the result in the file.

movwf    tris PORTA  or     movwf    trisPORTB    or            movwf    trisio      for PIC12F629
- moves the value in w to the tris file.

xorlw number
- exclusive ORs a literal with the number in the working register.

xorwf FileReg, f
- exclusive ORs the number in the working register with the number in a file (FileReg) and puts the result in the file.