Instrucción: ST |
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
Código de Operación de 16 bit |
|||||||||
1001 |
001r | rrrr | 1101 | ||||||
| Operación: | (X) Ü Rr, X Ü X + 1 |
| Operandos: | 0 £ r £ 31 |
| Words: | 1 (2 bytes) |
| Ciclos: | 2 |
| Flags: | Ninguno |
| Program Counter: | PC Ü PC + 1 |
Descripción: ST guarda un byte indirecto de un registro en el espacio de datos. Para los dispositivos con SRAM, el espacio de datos se compone del archivo de registro, memoria de I/O y SRAM interna (y SRAM externa si es aplicable). Para las dispositivos sin SRAM, el espacio de datos se compone sólo del archivo de registro. La EEPROM tiene un espacio de direcciones separado. La posición de los datos es apuntada por el registro puntero X (16 bits) en el archivo de registro. Se limita el acceso de memoria al segmento de datos de 64K bytes. Para acceder a otro segmento de datos en dispositivos con más de 64K bytes de espacio de datos, el RAMPX en el área de I/O tiene que ser cambiado. El registro puntero X puede quedar inalterado por el funcionamiento, puede post-incrementarse o pre-decrementarse. En este caso se post-incrementa. Estas características están especialmente preparadas para acceder a arrays, tablas y para el uso de puntero de pila del registro puntero X. Note que sólo el byte bajo del puntero X se pone al día en dispositivos sin más de 256 bytes de espacio de datos. Para tales dispositivos, el byte alto del indicador no es usado por esta instrucción y puede usarse para otros propósitos. El registro RAMPX en el área de I/O se pone al día en dispositivos con más de 64K bytes de espacio de datos. El resultado de estas combinaciones es indefinido: |
|
|
|
|
|
|
|
|
|
Ejemplo: |
|
| CLR r27 | ; Borra el byte alto de X |
LDI r26,$60 |
; Poner el byte bajo de X a $60 |
ST X+,r0 |
; Guardar r0 en la posición del espacio de datos $60 |
| ; (X post-incrementado) | |
ST X,r1 |
; Guardar r1 en la posición del espacio de datos $61 |
| LDI r26,$63 | ; Poner el byte bajo de X a $63 |
ST X,r2 |
; Guardar r2 en la posición del espacio de datos $63 |
| ST -X,r3 | ; Guardar r3 en la posición del espacio de datos $62 |
| ; (X pre-decrementado) | |