.dw directiva en el ensamblador AVR

0

la pieza de código a continuación se menciona en el conjunto de instrucciones del AVR de 8 bits como ejemplo para explicar la instrucción LPM.

ldi ZH, high(Table_1<<1) ldi ZL, low (Table_1<<1) lmp r16, Z ... Table_1: .dw 0x5876 ...

Entiendoquesetratadecargarladireccióndelapalabradememoriaflash,etiquetada"Table_1", en el registro Z y luego un byte de esa palabra (según el LSB de Z) en el registro r16 (o tal vez me equivoque) esta parte. Por favor corríjame si lo soy). Lo que no entiendo es el giro a la izquierda en las dos primeras líneas. ¿Alguien puede explicar por qué "Table_1" se debe desplazar a la izquierda antes de comenzar a cargar en Z?

    
pregunta Amjal

1 respuesta

2

Encontré la respuesta en la nota de la aplicación:

"El registro Z en el archivo de registro se usa para acceder a la memoria del programa. Este 16 bits el par de registro se utiliza como un puntero de 16 bits a la memoria del programa. Los 15 más significativos. Los bits cant cant seleccionan la dirección de palabra en la memoria del programa. Debido a esto, la palabra la dirección se multiplica por 2 antes de incluirla en el registro Z ".

Gracias a isdi por su comentario

    
respondido por el Amjal

Lea otras preguntas en las etiquetas