Hola, no te preocupes, tu duda creo que es la primera que tienen todos los que empiezan a programar un micro sin experiencia previa de programación.
Para empezar: OP es el codigo conocido como opcode o en otras palabras es la instrucción traducida de ensamblador a codigo de maquina, por ejemplo, la serie pic 16 tiene un opcode de 14bits de largo (cada linea de instrucción ocupa una palabra de 14 bits) (la serie pic 18 ocupa 16bits), por eso en el 16f84 se dice que tiene una memoria de 1Kx14.
Entonces direccionamiento "directo" significa que la dirección de memoria (ram) a la cual "apunta" la instrucción, esta contenida en ese opcode. Ejemplo:
movf rr,W ;mover el contenido del registro rr a W.
El opcode seria algo por el estilo: xxxxxxxrrrrrrr ;donde x sera el valor que corresponde a la instrucción movf r,W y r la dirección fisica del registro rr, teniendo siempre presente el arreglo de bancos en la mem. ram
Hasta aca me imagino que todo esta claro, ahora imagina que esos 7 bits de la dirección de memoria en ves de estar contenido en el opcode esten en "otro" registro de memoria, registro que puedes "manipular" como cualquier otro espacio de memoria. Esto significa: en el registro INDF (registro virtual) tienes el contenido del registro cuya dirección corresponde a los 7 bits de menor peso del registro FSR.
(teniendo en cuenta nuevamente el cambio en la asignación de los bancos de memoria)
Esto es:
movlw 06h ;cargo 06h en W
movwf FSR ;lo guardo en FSR
movf INDF,W ;guardo en W el contenido del registro cuya dirección es 06h
Al principio puedes preguntarte ¿para que quiero hacer esto? o ¿para que me sirve?
La forma más facil de responder es: qué pasa si en tu programa quieres borrar toda la memoria ram, o cargar 100 registros con el mismo valor.
Con direccionamiento indirecto solo tendrias que hacer un loop, incrementar FSR y cargar siempre el valor en INDF, como se ve estas trabajando con memoria, pero por medio de otros registros, esto se conoce como direccionamiento indirecto.
(si tienes acceso a manuales de programación puedes buscar temas como "punteros" o "vectores" que te mostraran lo potente que puede ser la programación con manejo indirecto de memoria)