- Se carga Rd con el contenido que apunta el registro apuntador Y.
- Carga indirecta del espacio de datos hacia Rd.
Instrucción LD |
Descripción y puntos importantes.
- Para usar esta instrucción se debe cargar previamente el apuntador Y, ya que según la dirección que este apuntado "Y" va a mover el dato que esta en esta dirección y la colocará en Rd .
- En algunos casos en vez de "Y" encontraremos "Y+" o "-Y" , eso quiere decir que cuando se ejecute la instrucción va a aumentar o disminuir este registro apuntador"Y" de 16 bits.
- Esta instrucción no la cuenta todos los microcontroladores ATMEL
- Para algunos microcontroladores ATMEL que solo tienen 256Bytes de memoria solo es suficiente usar 8 bits(los menos significativos).
- Para microcontroladores ATMEL con mayor memoria de datos ya se usan los 16 bits.
- Recordemos que la pila se ubica en la SRAM interno y su inicio es la última dirección de memoria, para el caso del Atmega32 la última dirección(RAMEND) es 0x85F.
- Se pueden usar los punteros X,Y, los dos de 16 bits.
- Debemos tener en cuenta que el puntero X esta formado por los registros R26,R27, el puntero Y está formado por los registros R28,R29 y finalmente el puntero Z esta formado por los registros R30,R31, como se muestra en la siguiente imagen:
Punteros |
Ejemplo
------------------------------------------------------------------------------------------------------------------------------------------------------
Agregar el contenido de la ubicación de la dirección de 0X1F(Correspondiente a R31) hacia el registro R16.
Agregar el contenido de la ubicación de la dirección de 0X1F(Correspondiente a R31) hacia el registro R16.
Código |
Este es un método indirecto de cargar valores dentro la memoria de datos según la dirección que deseemos de SRAM hacia la misma SRAM.
Debug |
------------------------------------------------------------------------------------------------------------------------------------------------------
ST(Store Indirect From Register to Data Space using index X,Y
- Se carga el valor de la dirección apuntada por Y con el contenido de Rr, 0<=r<=31
- Carga indirecta de Rr hacia la dirección de SRAM apuntada por Y.
Instrucción ST |
- Como pueden ver esta instrucción es muy similar a la instrucción STS, pero ahora vemos que usa el registro Y(16 bits), éste registro Y, la cual se usa como apuntador de dirección.
- Como se observa este es el proceso inverso de la instrucción LD.
- En algunos casos en vez de "Y" o "X" encontraremos "Y+" ,"-Y","X+","-X" , eso quiere decir que cuando se ejecute la instrucción va a aumentar o disminuir este registro apuntador"Y" o "X" de 16 bits.
Ejemplo
------------------------------------------------------------------------------------------------------------------------------------------------------
Agregar el contenido de la ubicación del registro R16 hacia la dirección de X.
------------------------------------------------------------------------------------------------------------------------------------------------------
Agregar el contenido de la ubicación del registro R16 hacia la dirección de X.
------------------------------------------------------------------------------------------------------------------------------------------------------
Código |
No hay comentarios:
Publicar un comentario