PIC12C509A memory map

Where everything sits, at its exact address. The PIC12C509A 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 ID0x0400 – 0x04034 words
Flash0x0000 – 0x03FF1K words

Data memory

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

RAM, bank 10x0030 – 0x003F16 B
RAM, bank 00x0010 – 0x001F16 B
RAM, bank 00x0007 – 0x000F9 B

Every segment

SegmentSpaceStartEndSizePage
RAM, bank 0data0x00070x000F9 B
General-purpose RAM, all banksdata0x00070x002F41 B
RAM, bank 0data0x00100x001F16 B
RAM, bank 1data0x00300x003F16 B
Flashprog0x00000x03FF1K words
User IDprog0x04000x04034 words
Configuration wordsprog0x0FFF0x0FFF1 word