The PICmicro hardware has been designed so that two different sets of file registers live at the same set of locations. Each of these sets of file registers are called banks. Banks are potentially confusing, but are used for a very good reason, in that they allow the PICmicro to use smaller instructions. This is because the number of bits needed to address a particular file register can be small. If we have a number of banks of file registers we can still store plenty of data in our programs, but we must be careful that we use the correct bank when we access memory.
One of the more common PICmicro programming mistakes is to access a file register in the wrong bank, do the wrong thing and then spend ages trying to work out why your program is not working.
The diagram shows the arrangement of the registers in our PICmicro. Note that this arrangement is specific to ours, and that other PICmicros may have different numbers of banks. Particular registers in the SPR area have specific functions.