despues de unos cuantos años y todabia no entendi lo que era ACCESS y BANKED.nunca le he hechado cuenta porque sin saberlo el compilador
ya gestiona la intruduccion de ACCESS o BANKED en cada instruccion.asi que si usamos registros especiales,usa BANKED en cada instruccion.
y si trabajamos con registros generales,el compilador cambia a ACCESS.
claro que si usamos ACCESS.hay que conmutar BSR para acceder al banco apropiado.
ACCESS y BANKED es algo que el compilador selecciona automaticamente.pero tambien podemos manipularlos nosotros mismos para una buena utilidad.
para guardar un valor en una posicion de la memoria.hay que conmutar el banco apropiado en el registro BSR.en caso contrario,podriamos meter
un dato en una posicion de memoria equivocada.
pero existe una excepcion.hay un rango de memoria que es accesible desde cualquier banco que este conmutado.excepto cuando direccionamos
los registros especiales desde 0xF60 a 0Xfff.
este rango de memoria esta en el BANCO 0.en el rango de direcciones 0x00 a 0x5F. y siempre y cuando seleccionemos ACCESS en la intruccion
esta zona de memoria es accesible desde cualquier banco.
de la direccion 0x60 a 0xff hay que tener cuidado de no escribir en ellas o estaremos escribiendo directamente sobre los registros especiales.
quiero aclarar que debido a esta tecnica de acceso.los registros especiales de la direccion 0xf60(PIE6) a 0xfff(TOSU) no se necesita
conmutar ningun banco con (BSR). pero para acceder a los registros 0xf00 a 0xf5f(RTCCFG) hay que conmutar el banco de registros especiales.
el banco 15 para el pic 18F87k22.en otros puede ser diferente.
asi que si queremos acceder a las direcciones 0x00 a 0x5f sin tener que conmutar bancos.solo hay que poner ACCESS en la instruccion que usemos.
para todo lo demas el compilador se encarga automaticamente de intruducir ACCESS o BANKED.
excepto para la gestion de las direcciones 0xf00 a 0xf5f de los registros especiales.que se debera conmutar el banco 15.
espero no haber cometido ningun error de entendimiento.