Si perdon, puse 18F46k80 y no se por que me salio el datasheet del 18F4680 y cambia todo...
Como bien decis viene por ahi:
Addresses, E41h through F5Fh, are also used by the SFRs, but are not part of the Access RAM. To access these registers, users must always load the proper BSR value.
Asi que o especificas el BSR o podes hacer un acceso indirecto ( FSR y INDF, ya que son de 12 bits y no vas a tener necesidad de cambiar bancos )
Si no me equivoco en ASM para pic18 esta definido ACCESS como 0 y BANKED como 1, sino reemplazalos. Lo que si no recuerdo cual es el default, si es ACCESS o BANKED. Pero imagino que es el ACCESS ( me refiero a default cuando no se especifica )
Opcion 1: CLRF PORTA ,ACCESS ;access bank
CLRF LATA ,ACCESS ;access bank
MOVLB 0x0F ;Cargo el valor del banco
MOVLW H'03'
MOVWF ANCON0 ,BANKED ; Uso el banco
MOVLW H'0F'
MOVWF TRISA ,ACCESS ;Access bank
BSF LATA ,7 ,ACCESS
BSF LATA ,6 ,ACCESS
BSF LATA ,5 ,ACCESS
o podes usar registro indirecto como dije
Opcion 2: CLRF PORTA ,ACCESS ;access bank
CLRF LATA ,ACCESS ;access bank
LFSR 0,ANCON0 ; cargo la direccion de ANCON0 en FSR0
MOVLW H'03'
MOVWF INDF0 ,ACCESS ; No uso el banco, sin o sigo usando el access RAM
MOVLW H'0F'
MOVWF TRISA ,ACCESS ;Access bank
BSF LATA ,7 ,ACCESS
BSF LATA ,6 ,ACCESS
BSF LATA ,5 ,ACCESS
Opcion 3:Por ultimo y menos intuitivo podrias cargar el FSR2 con 0xF00 ( si no lo usas ) de esa forma podes acceder desde 0xF00 a 0xFFF utilizando el ACCESS (no cubre todos los regisrtos pero en su mayoria), ya que cuando es menos a 0x060 la direccion que va por que el opcode termina usandose un offset entre FSR2+8bit opcode, si quisieras acceder a 0xF50 quedaria asi (FSR2 = 0xF00 y opcode= 0x50 ) lo cual se sumaria y daria el acceso como si fuera al Access RAM. por otra parte si es mayor a 0x60 se manejaria comunmente. Explicacion en 6.6.2 y 6.6.3 del datasheet
Creo que la principal diferencia con los PIC16F es eso... es el cambio de las instrucciones que permiten el trabajo con el ACCESS RAM (una seccion ) / Toda la RAM con bancos / o en fin usar registros indirectos.
Hay algunas cosas buenas con el registro indirecto como que si estan todos seguidos directametne escribis en POSTINC0 (en ves de INDF0) y solo se incrementa FSR0. Tambien tenes PREINC0, y otros mas
Por ejemplo si apuntas a LATG lo unico que haces es cargar valores en POSTINC0 y vas llenando todos los LATx , al igual que los PORTx
Es todo lo que puedo aportar.