You are on page 1of 11

Aplicaciones de Sistemas Microprocesados

Nombre: Byron Mauricio Albuja Snchez




Modos de direccionamiento en los microcontroladores AVR ATMEGA


Los modos de direccionamiento para acceder a la memoria de programa (memoria Flaxh) y a la
memoria de datos, ya sea la SRAM, los archivos de registros, la memoria de entrada/salida y la
memoria extendida de entrada/salida son los siguientes [1]:


1. Direccionamiento directo de un solo registro: Como se muestran en la Fig. 1 en este modo
de direccionamiento el dato para realizar el cdigo de operacin de la instruccin (OP) se
encuentra almacenado en el registro d (RD). Entre las operaciones que empelan este tipo
de direccionamiento podemos mencionar la de incremento en 1 del valor de un registro
(INC) y la de limpieza o borrado de registro (CLR)


Fig. 1. Direccionamiento directo de un solo registro.

2. Direccionamiento directo de dos registros: Como se puede observar en la Fig. 2 en este
modo de direccionamiento los dos datos requeridos por la operacin se encuentran
almacenados en los registros r y d (Rr y Rd respectivamente) y al ejecutar la operacin el
resultado ser almacenado en el registro d. Entre las operaciones que empelan este tipo
de direccionamiento podemos mencionar la suma de dos registros (ADD), la comparacin
de registros (CP) y el movimiento de datos entre registros (MOV).


Fig. 2. Direccionamiento directo de dos registros.
3. Direccionamiento directo de entrada/salida: Como se puede observar en la Fig. 3 en este
modo de direccionamiento se requiere especificar un puerto de destino para sacar los
datos contenidos en el registro r o un puerto fuente desde el que se leern datos que
sern guardados en el registro d. Entre las operaciones que empelan este tipo de
direccionamiento podemos mencionar la entrada por puerto (IN) y la salida por puerto
(OUT).


Fig. 3. Direccionamiento directo de entrada/salida.

4. Direccionamiento directo de datos: Como se puede observar en la Fig. 4 en este modo de
direccionamiento se requiere especificar una direccin de memoria en la cual se quiere
escribir o leer datos desde o hacia un registro respectivamente. Entre las operaciones que
empelan este tipo de direccionamiento podemos mencionar el almacenamiento directo en
RAM.


Fig. 4. Direccionamiento directo de datos.

5. Direccionamiento indirecto de datos con desplazamiento: Como se puede observar en la
Fig. 5 en este modo de direccionamiento la direccin de memoria del operando al que se
hace referencia se obtiene de sumar al registro y o z un valor cualquiera de direccin, el
dato obtenido ser almacenado o guardado en un registro destino o fuente
respectivamente. Entre las operaciones que empelan este tipo de direccionamiento
podemos mencionar la carga indirecta con desplazamiento (LDD) y el almacenamiento
indirecto con desplazamiento (STD).

Fig. 5. Direccionamiento indirecto de datos con desplazamiento.

6. Direccionamiento indirecto de datos: Como se puede observar en la Fig. 6 en este modo
de direccionamiento la direccin del operando a leerse o la direccin en la que se desea
escribir el valor de un registro se encuentra en el registro x, y o z. Entre las operaciones
que empelan este tipo de direccionamiento podemos mencionar la carga indirecta (LD) y el
almacenamiento indirecto (ST).


Fig. 6. Direccionamiento indirecto de datos.

7. Direccionamiento indirecto de datos con pre-decremento: Como se puede observar en la
Fig. 7 este modo de direccionamiento es similar al direccionamiento indirecto de datos,
con la diferencia de que la direccin contenida en el registro x, y o z es decrementada en 1
previo a la realizacin de la operacin. Entre las operaciones que empelan este tipo de
direccionamiento podemos mencionar la carga indirecta (LD) y el almacenamiento
indirecto (ST).


Fig. 7. Direccionamiento indirecto de datos con pre-decremento.
8. Direccionamiento indirecto de datos con post-incremento: Como se puede observar en la
Fig. 8 este modo de direccionamiento es similar al direccionamiento indirecto de datos,
con la diferencia de que la direccin contenida en el registro x, y o z es incrementada en 1
luego de que la operacin se ha ejecutado. Entre las operaciones que empelan este tipo de
direccionamiento podemos mencionar la carga indirecta (LD) y el almacenamiento
indirecto (ST).


Fig. 8. Direccionamiento indirecto de datos con post-incremento.

9. Direccionamiento a memoria de programa: Como se puede observar en la Fig. 9 en este
modo de direccionamiento se carga el contenido de la direccin de memoria especificada
en el registro z al registro R0 o Rd, el ltimo bit de la operacin indica si se carga el byte
ms significativo o el menos significativo de la direccin especificada. Entre las operaciones
que empelan este tipo de direccionamiento podemos mencionar la carga desde memoria
del programa (LMP).


Fig. 9. Direccionamiento a memoria de programa.

10. Direccionamiento a memoria de programa con post-incremento: Como se puede
observar en la Fig. 10 en este modo de direccionamiento se carga el contenido de la
direccin de memoria especificada en el registro z al registro Rd, el ltimo bit de la
operacin indica si se carga el byte ms significativo o el menos significativo de la direccin
especificada. Entre las operaciones que empelan este tipo de direccionamiento podemos
mencionar la carga extendida desde memoria del programa (ELMP) en donde el registro
RAMPZ se usa para la extensin.



Fig. 10. Direccionamiento a memoria de programa con post-incremento.

11. Direccionamiento directo de programa: Como se puede observar en la Fig. 11 en este
modo de direccionamiento la operacin provoca un salto en la ejecucin del programa
hacia la direccin especificada. Entre las operaciones que empelan este tipo de
direccionamiento podemos mencionar el salto directo (JMP) y la llamada directa a
subrutina (CALL).


Fig. 11. Direccionamiento directo de programa.

12. Direccionamiento indirecto a memoria de programa: Como se puede observar en la Fig.
12 en este modo de direccionamiento la operacin provoca un salto en la ejecucin del
programa, es decir que se contina desde la instruccin cuya direccin se especifica en el
registro z. Entre las operaciones que empelan este tipo de direccionamiento podemos
mencionar el salto indirecto hacia z (IJMP) y la llamada indirecta a z (ICALL).


Fig. 12. Direccionamiento indirecto a memoria de programa.

13. Direccionamiento relativo a memoria de programa: Como se puede observar en la Fig. 13
en este modo de direccionamiento la operacin provoca un salto en el programa, el cual
contina desde la direccin actual contenida en el contador del programa incrementada
en uno e incrementada adems en el valor indicado por el operando k. Entre las
operaciones que empelan este tipo de direccionamiento podemos mencionar el salto
relativo (RJMP) y la llamada relativa a subrutina (RCALL).


Fig. 13. Direccionamiento relativo a memoria de programa.
































Set de instrucciones del ATMEGA 164P

Las instrucciones del ATMEGA 164 son las siguientes [2]:

Instrucciones lgicas y aritmticas:




Instrucciones de derivacin:









Instrucciones de bit y de prueba de bit:









Instrucciones de transferencia de datos:





Instrucciones de control del microcontrolador:





Conclusiones.-

Conocer los modos de direccionamiento ayuda a la compresin de la programacin en bajo nivel y de sus respectivas instrucciones.
Conocer el set de instrucciones nos permite programar ms fcilmente ya que conocemos las operaciones que puede llevar a cabo un determinado
microcontrolador.


Referencias.-


[1] Atmel, www.atmel.com, 09 Junio 2014. [En lnea]. Available: http://www.atmel.com/images/doc7674.pdf. [ltimo acceso: 29 Julio 2014].
[2] N. E. d. T. Universidad, uvirtual.unet.edu.ve, 27 Febrero 2012. [En lnea]. Available:
https://uvirtual.unet.edu.ve/file.php?file=%2F1357%2FSesion1%2FTutorial%20ATMEGA%2F7842870-Capitulo3-Modos-de-Direccionamiento-e-
Instrucciones-del-ATmega32-espanol.pdf. [ltimo acceso: 29 Julio 2014].

You might also like