7.3.1 Reading Program Memory

Program memory is read linearly, similar to how data memory is read. The MOV instruction is used to read the program memory.

Previously, devices used the table read feature to read the Flash program memory. However, in dsPIC33A devices, TBLRDL/TBLRDH features are unimplemented.
Note: The DRBV bit is set if the data read buffer holds valid data. It is recommended to invalidate the buffer by writing 0 to the DRBV bit after a program/erase operation or modification to security access controls to clear stale data from the buffer.