Instrucción: LDD |
|||||||||
|
|||||||||
Código de Operación de 16 bit |
|||||||||
10q0 |
qq0d | dddd | 1qqq |
Operación: | Rd Ü (Y+q) |
Operandos: | 0 £ d £ 31, 0 £ q £ 63 |
Words: | 1 (2 bytes) |
Ciclos: | 2 |
Flags: | Ninguno |
Program Counter: | PC Ü PC + 1 |
Descripción: LDD Carga un byte indirecto con desplazamiento del espacio de datos a un registro. 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 los dispositivos sin SRAM, el espacio de datos se compone sólo por el archivo de registro. La EEPROM tiene un espacio de dirección separado. La posición de los datos es apuntado por el registro puntero Y (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 datos de espacio, el RAMPY en el registro en el área de I/O tiene que ser cambiado. |
Ejemplo: |
CLR r29 | ; Borrar el byte alto de Y |
LDI r28,$60 |
; Poner el byte bajo de Y a $60 |
LD r0,Y+ |
; Cargar r0 con la posición del espacio de datos $60 |
; (Y post-incrementado) | |
LD r1,Y |
; Cargar r1 con la posición del espacio de datos $61 |
LDI r28,$63 |
; Poner el byte bajo de Y a $63 |
LD r2,Y |
; Cargar r2 con la posición del espacio de datos $63 |
LD r3,-Y |
; Cargar r3 con la posición del espacio de datos $62 |
; (Y pre-decrementado) | |
LDD r4,Y+2 | ; Cargar r4 con la posición del espacio de datos $64 |