RE: Indirect addressing ???
That depends a bit on which PIC you're using. Generally, you write the address of the variable that you wish to access into the FSR-register and then access it through the INDF-register.
PIC18-processors has more advanced methods for indirect access than PIC16-processors. For example, PIC18 contains three FSR-registers, has special instructions for loading them, and in addition to INDF-registers, it also has POSTINC-registers and so on. It's all in the datasheet for your processor..