PIC16F59 memory map

Where everything sits, at its exact address. The PIC16F59 keeps program and data apart (Harvard): program memory holds 12-bit instruction words, addressed in words, while the special function registers and the general-purpose RAM share the banked data memory.

Program memory

Instructions, the user ID and the configuration words.

Configuration words0x0FFF – 0x0FFF1 word
User ID0x0800 – 0x08034 words
Flash0x0000 – 0x07FF2K words

Data memory

Banked: special function registers and general-purpose RAM in each bank.

RAM, bank 70x00F0 – 0x00FF16 B
RAM, bank 60x00D0 – 0x00DF16 B
RAM, bank 50x00B0 – 0x00BF16 B
RAM, bank 40x0090 – 0x009F16 B
RAM, bank 30x0070 – 0x007F16 B
RAM, bank 20x0050 – 0x005F16 B
RAM, bank 10x0030 – 0x003F16 B
RAM, bank 00x0010 – 0x001F16 B
RAM, bank 00x000A – 0x000F6 B

Every segment

SegmentSpaceStartEndSizePage
RAM, bank 0data0x000A0x000F6 B
General-purpose RAM, all banksdata0x000A0x008F134 B
RAM, bank 0data0x00100x001F16 B
RAM, bank 1data0x00300x003F16 B
RAM, bank 2data0x00500x005F16 B
RAM, bank 3data0x00700x007F16 B
RAM, bank 4data0x00900x009F16 B
RAM, bank 5data0x00B00x00BF16 B
RAM, bank 6data0x00D00x00DF16 B
RAM, bank 7data0x00F00x00FF16 B
Flashprog0x00000x07FF2K words
User IDprog0x08000x08034 words
Configuration wordsprog0x0FFF0x0FFF1 word