Duda sobre acceso a una dirección de memoria en tiempo de ejecución

Os pongo en situación, estoy desarrollando un tetris utilizando un pic16F887 conectao a una pantalla de 128x128px (con 4 controladores ks0108), ya tengo montada casi toda la lógica del tétris, pero tengo un problema que me ha dejado estancado, tengo escrita en memoria ua representacion del pozo del tetris (desde la 0x190 hasta 0x1D0), en las que cada bit representa un punto del pozo, pues bien mi problema viene cuando quiero acceder a una posicioón determinada de la memoria, es decir:

yo mediante un algoritmo que tengo me dice en que posicion (linea) tengo que leer suponiendo que 0x190 se corresponde con la linea 0, por lo que para acceder correctamente al dato requerido necesito leer la posición 0x190+linea (siendo linea la variable en la que tengo la ínea que quiero leer), pues bien, no cosigo acceder a esa posición de ninguna manera.

¿alguna idea?
 
Haber si entendi..... Necesitas accesar a una localidad de memoria RAM de forma indirecta?

Siendo asi solo cargas la direccion de origen en el registro FSR y los bits RP1 y RP0 y despues haces un movimiento hacia INDF

Código:
  BSF STATUS,IRP    ;Selecciona banco 1
  MOVLW H'90'        ;Carga direccion de inicio (90h)
  MOVWF FSR          ;
  MOVF POINTER,W ;Carga linea a leer y lo suma a la direccion de
  ADDWF FSR,F        ;inicio (90h + pointer)
  MOVF INDF,W        ;lee el dato en (90h + pointer) y lo carga en W
 

Adjuntos

  • direccionamiento_149.png
    direccionamiento_149.png
    25 KB · Visitas: 4
Atrás
Arriba