Está en la página 1de 1

DIRECCIONAMIENTOS Los modos de direccionamiento tratan sobre la forma de mover los datos de unas posiciones de memoria a otras.

DIRECCIONAMIENTO DIRECTO La memoria interna se direcciona de forma directa por medio de los 8 bits "f" contenidos en las instrucciones que operan sobre registros. De esta manera se puede direccionar cualquier posicin desde la 00 a la FF. En los microcontroladores que tengan ms de un banco, antes de acceder a alguna variable que se encuentre en la zona de los bancos de registros, el programador deber asegurarse de haber programado los bits de seleccin de banco en el registro OPTION. Este es el modo ms utilizado, ya que como hemos visto anteriormente, la memoria RAM est dividida en registros especficos y en un conjunto de registros de propsito general. Este modo consiste en codificar el nombre del o de los registros en cuestin directamente en la instruccin. MOVWF f ; Desplaza el contenido del registro w al registro f DIRECCIONAMIENTO INDIRECTO Es el modo ms potente y utiliza los registros INDF y FSR. En el registro FSR se introduce la direccin del registro que se quiere leer cuando se acceda a INDF. FSR acta como puntero, es decir, el valor que guardemos en este registro ser la direccin de una posicin de memoria. Si aumentamos o disminuimos con cualquier operacin el contenido de FSR nos moveremos entre las posiciones de memoria. El registro INDF no tiene existencia fsica, solamente est implementado en la posicin 0 como modo de notacin. La utilidad de este registro no es otra que acceder a los datos apuntados por el registro FSR, para poder modificarlos, etc. DIRECCIONAMIENTO INDEXADO - Similar al direccionamiento relativo a registro base. El operando se encuentra en memoria. Registro ndice: se modifica a menudo en la ejecucin del programa. - Subcampos del campo de operando - El registro ndice puede permitir incrementos o decrementos antes o despus de obtenerse la direccin del objeto: Preincremento Predecremento Posincremento Posdecremento - El incremento o decremento puede depender del tamao del objeto referenciado. - Ejemplos M68000 (slo predecremento y posincremento): MOVE.B D0,(A0)+ incrementa A0 en 1 MOVE.W D0,-(A2) decrementa A2 en 2 MOVE.L (A5)+,D3 incrementa A5 en 4 - Utilizado para recorrer tablas o vectores.

También podría gustarte