Basics of PIC and other related articles
PERIPHERAL INTERFACE CONTROLLER (PIC)
To know the basic instruction sets, use the link below.
PIC PROGRAMMING INSTRUCTION SETS
BIT OPERATION GROUP INSTRUCTIONS
ARITHMETICAL AND LOGICAL OPERATIONS GROUP
In this article, the basic arithmetic and loguc operations that are carried out by a PIC is explained in detail.
Arithmetic and logic operation group instructions are used for performing all arithmetic operations and logic operations. By using these types of instructions, the PIC chip can easily perform all arithmetic and logic operations inside the micro controller (PIC). The arithmetic operations are addition (ADD), subtraction (SUB), multiplication (MUL), division (DIV) and logical operations are AND, OR, NOT, XOR, and so on. The basic Arithmetical and Logical operations that are performed by a PIC is given below.
1) ADDLW
“ADDLW” instruction is used for performing addition operation (adding a constant with W register). By using this instruction, we can add two bits easily and the result value can be stored in another register or memory location.
- Syntax: Label ADDLW k
- Description: Given constant is added with W reg.
- Operation: (w) + k to w
- Operand: 0 < k < 255
- No. of words: 1
- No. cycles: 1
- Flags: C, DC, Z
2) ADDWF
“ADDWF” is also used for performing the addition operation. This ADDWF instruction adds the constant with W register.
- Syntax: Label ADDWF f, d
- Description: Add W reg. content with f register
- Operation: (w) + (f) to w if d = 0 and (w) + (f) to f if d = 1
- Operand: 0 < f < 127
- No. of words: 1
- No. cycles: 1
- Flags: C, DC, Z
3) SUBLW
“SUBLW” used for performing subtraction function which can be subtracting two values and can be stored to another memory location. This instruction helps to Subtract W content from given constant.
- Syntax: Label SUBLW k
- Description: W reg. content is subtracted from k
- Operation: k – (w) to w
- Operand: 0 < k < 255
- No. of words: 1
- No. cycles: 1
- Flags: C, DC, Z
4) SUBWF
SUBWF is used for performing subtraction operation. In SUBLW, this instruction Subtracts W content from f register.
- Syntax: Label SUBWF f
- Description: W reg. content is subtracted from f
- Operation: f – (w) to w if d = 0 and f – (w) to f if d = 1
- Operand: 0 < f < 127
- No. of words: 1
- No. cycles: 1
- Flags: C, DC, Z
5) ANDLW
ANDLW is a logical instruction which used for performing Logic AND. By using this instruction helps AND the constant with W.
- Syntax: Label ANDLW k
- Description: Given constant is .and. with W reg.
- Operation: (w) .and. k to w
- Operand: 0 < k < 255
- No. of words: 1
- No. cycles: 1
- Flags: Z
6) IORLW
This command is used for performing logical OR operation. By using this instruction, it will perform Logical OR operation with W register.
- Syntax: Label IORLW k
- Description: Given constant is .or. with W reg.
- Operation: (w) .or. k to w
- Operand: 0 < k < 255
- No. of words: 1
- No. cycles: 1
- Flags: Z
7) IORWF
Logic OR the W reg. with f
- Syntax: Label IORWF f, d
- Description: W reg. is .or. with f reg.
- Operation: (w) .and. f to w, if d = 0 and (w) .and. f to f, if d = 1
- Operand: 0 < f < 127
- No. of words: 1
- No. cycles: 1
- Flags: Z
8 ) XORLW
This command is used for performing logical XOR operation. By using this command, it will perform logical XOR with Logic constant and W register.
- Syntax: Label XORLW k
- Description: Given constant is .XOR. with W reg.
- Operation: (w) .xor. k to w
- Operand: 0 < k < 255
- No. of words: 1
- No. cycles: 1
- Flags: Z
9) XORWF
This command used to perform Logic XOR the W reg. with f
- Syntax: Label XORWF f, d
- Description: W reg. is .xor. with f reg.
- Operation: (w) .and. f to w, if d = 0 and (w) .and. f to f, if d = 1
- Operand: 0 < f < 127
- No. of words: 1
- No. cycles: 1
- Flags: Z
10) INCF
INCF command used for performing increment operations.(Increment f registers content)
- Syntax: Label INCF f, d
- Description: Increment the content of f register
- Operation: (f) + 1 to w, if d = 0 and (f) + 1 to f, if d = 1
- Operand: 0 < f < 127
- No. of words: 1
- No. cycles: 1
- Flags: Z
11) DECF
DECF command used for performing Decrement f register content
- Syntax: Label DECF f, d
- Description: Decrement the content of f register
- Operation: (f) – 1 to w, if d = 0 and (f) – 1 to f, if d = 1
- Operand: 0 < f < 127
- No. of words: 1
- No. cycles: 1
- Flags: Z
12) RLF
RLF command is used for performing rotate register content left through Carry
- Syntax: Label RLF f, d
- Description: Rotate f content left through Carry
- Operation: Result to w, if d = 0 and Result to f, if d = 1
- Operand: 0 < f < 127
- No. of words: 1
- No. cycles: 1
- Flags: C
13) RRF
RRF command used for perform Rotate register content right through Carry
- Syntax: Label RRF f, d
- Description: Rotate f content right through Carry
- Operation: Result to w, if d = 0 and Result to f, if d = 1
- Operand: 0 < f < 127
- No. of words: 1
- No. cycles: 1
- Flags: C
14) COMF
COMF command for perform Complement f registers content
- Syntax: Label COMF f, d
- Description: Complement the register content
- Operation: Result to w, if d = 0 and Result to f, if d = 1
- Operand: 0 < f < 127
- No. of words: 1
- No. cycles: 1
- Flags: Z
Comments are closed.