Program Memory | EEPROM - 1024 bytes used to store the program. This is where the C source code that we write ends up. Once converted into PICmicro machine code our program is stored in this non-volatile memory area.
General Purpose Registers | SRAM - 64 bytes (in the PIC16F84) used to store variables. This is where your variables are stored when your program is running. The PICmicro documentation calls them General Purpose Registers in that you can use them to hold whatever values your program is working on.
Non-volatile Data Memory | EEPROM - 64 bytes used to hold non-volatile data. This is a useful feature of the 16F84. If your device needs to remember things when the power is turned off, for example user settings, they can be stored in this special area of memory.
Special Function Registers | SRAM - 15 bytes used to hold Special Function Registers (SFR) which control the operation of hardware devices in the PICmicro. We will use these registers to configure and interact with the PICmicro hardware.