Buenas.
Para la memoria de programa, ocurre lo mismo. El registro contador de programa "PC", puede direccionar hasta 8KBytes de memoria(14bits). El problema es que instrucciones como call o goto, sólo cargan los 11 primeros bits en el PC, lo que nos da un total de 2KB. Cuando queremos saltar a otra página de la memoria de programa, debemos precargar en el registro "PCLATH" los dos bits más significativos del PC, para que al ejecutar la instrucción goto o call, el pc se carge corectamente.
Otra cosa a tener en cuenta son los saltos en las tablas de datos cuando hacemos un "addwf PC,f". En este caso, como ha dicho nuestro amigo Jimmy, el registro "w" tan sólo contiene los 8 bits menos significativos que se cargan en el PC, por eso no podemos hacer nunca tablas de datos mayores de 256 datos. A la hora de realizar tablas, debemos asegurarnos de cargar en el PCLATH el valor adecuado, que esta vez, serán los 5 bits más significativos.