Autor Tema: Problema con direccionamiento indirecto  (Leído 1444 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jm.garciaf

  • PIC10
  • *
  • Mensajes: 7
Problema con direccionamiento indirecto
« en: 21 de Mayo de 2015, 19:21:31 »
Hola!
Estoy "migrando" de un pic 16f877a a un 16f1519, creo que no hay mucho cambio a grandes rasgos.
Estoy programando en Assamble con MPLAB X IDE 3.0 en relocatable.

Cuando simulo mi programa en Proteus me sale el siguiente error:

(PIC16 CORE) PC=0x29xx. Indirection addres (0xFFFF) for INDF1 register is outside writable data memory - no write ocurrs.
(Pongo xx porque me sale el mismo error para todas las direcciones a partir de esa. Vale aclarar que en esas direcciones de PC no tengo codigo).

Ahora bien, si saco las rutinas que agrego, el problema se va. Estas rutinas son del siguiente tipo:

CODELABEL         CODE
RUTINA1

movf     reg,w
sublw   d'0'
pagesel  subrutina1
btfsc     status,z
call       subrutina1
pagesel  rutina1
return

subrutina1

movlw     0xhh
movwf     registro1
movlw     0xhh
movwf     registro2
return

si saco este tipo de rutinas, el problema se va, como dije antes. pero tengo otra rutina igual a esta, donde solo cambia que en vez de dirigirse a subrutina1 se dirige a otra subrutina.

creo que el problema viene pq indirectamente los FSR apuntan a la dirección del registro INDF1, entonces devuelve el valor 0 y no se puede escribir ni leer.

pero no se en que momento pasa.

espero me puedan guiar un poco.
saludos
jose.