9.5.3.3 Operations by FSRs on FSRs
Indirect Addressing operations that target other FSRs or virtual
registers represent special cases. For example, using an FSR to point to one of the virtual
registers will not result in successful operations. As a specific case, assume that
FSR0H:FSR0L contains the address of INDF1. Attempts to read the value of the INDF1 using
INDF0 as an operand will return 00h. Attempts to write to INDF1 using INDF0 as the operand
will result in a NOP
.
On the other hand, using the virtual registers to write to an FSR pair may not occur as planned. In these cases, the value will be written to the FSR pair but without any incrementing or decrementing. Thus, writing to either the INDF2 or POSTDEC2 register will write the same value to FSR2H:FSR2L.
Since the FSRs are physical registers mapped in the SFR space, they can be manipulated through all direct operations. Users need to proceed cautiously when working on these registers, particularly if their code uses Indirect Addressing.
Similarly, operations by Indirect Addressing are permitted on all other SFRs. Users need to exercise the appropriate caution that they do not inadvertently change settings that might affect the operation of the device.