In MPLAB® XC8 C source code, a function can be written to act as the interrupt service routine by using the interrupt qualifier. Most baseline PIC® devices do not implement interrupts at all; mid-range devices utilize a single interrupt vector, and PIC18 devices implement two separate interrupt vector locations and use a simple priority scheme Declare a function qualified with the "interrupt" keyword and the compiler will place it in the right place, and take care of saving any used registers and its restoration.
An interrupt function must be declared as type void interrupt and cannot have parameters. On PIC18 devices, interrupt functions default to being high priority. To create a low-priority interrupt function, use the qualifier low_priority in addition to interrupt in the function definition.
Here's an example of a program for a mid-range PIC® MCU that uses interrupts:
For an enhanced 8-bit MCU that uses interrupts (Using High and Low priority):