While observing the memory map of a PIC controller, I observed that for RAM memory it specified the starting address and the ending address, and the difference gave the correct size of the memory mentioned in the data sheet. But in the case of program memory it was specified as 48K instructions.

What does it mean when this notation is followed? It is a 16 bit controller.

  • \$\begingroup\$ Which PIC, and where in the datasheet does it say that? \$\endgroup\$ – Bruce Abbott Nov 2 '16 at 18:47

Many PIC microcontrollers have instructions which are 12 or 14 bits long, and use word addresses to identify the locations of instructions. Especially with devices which can't do anything with the code storage area except execute instructions from it, describing the capacity of a part as "8192 14-bit instructions" is more helpful than describing it as holding "14,336 bytes".

While many PIC parts use 16-bit instructions and have the ability to access code storage as a sequence of octets, describing the capacity of some parts in instruction-sized units and the capacity of others in octets would be confusing. When comparing the code size limits for parts where code storage is or is not byte-addressable, it's more helpful to describe the sizes of both in terms of instructions.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.