A list of PIC instructions

addlw number
- (NOT FOR PIC16C5X SERIES) - adds a number with the number in the working register.

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

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

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

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

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

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

btfsc FileReg, bit
- tests a bit in a file register (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 register (FileReg) and skips the next instruction if the result is set (i.e. if that bit is 1).

call AnySub
- makes the chip call a subroutine(AnySub), after which it will return to where it left off.

clrf FileReg
- clears (makes 0) the number in a file register (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 register (FileReg), leaving the result in the file register.

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

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

goto Anywhere
- makes the chip go to somewhere in the program which YOU have labelled 'Anywhere'.

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

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

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 register (FileReg) and puts the result in the file register.

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

movlw number
- moves (copies) a number into the working register.

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

nop
- this stands for : no operation, in other words - do nothing, (it seems useless, but it's actually quite useful!)

option
- (NOT TO BE USED EXCEPT IN PIC16C5X SERIES) - 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 particular number (literal) in the working register.

return
- (NOT FOR PIC16C5X SERIES) - returns from a subroutine.

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

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

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

sublw number
- (NOT FOR PIC16C5X SERIES) - subtracts the number in the working register from a number.

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

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

tris PORTX
- (NOT TO BE USED EXCEPT IN PIC16C5X SERIES) - uses the number in the working register to specify which bits of a port are inputs (correspond to a binary 1) and which are outputs (correspond to 0).

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

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

Copyright ©2006 Perfect Square Ltd.