LOADWORDADR/de

Aus MCS Wiki AVR
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Funktion

Läd das Z-Register und setzt RAMPZ wenn vorhanden.

 

 

Syntax

Var = LOADWORDADR(label )  

 

Anmerkungen

label

Der Name des Labels dessen Adresse in das Registerpaar R30|R31 (Z-Register) geladen wird.

 

Der erzeugte Code :

LDI R30,Low(label * 2)
 
LDI R31,High(label * 2)
 
LDI R24,1 or CLR R24
 
STS RAMPZ, R24
 

Die Programmspeicher der AVR sind Wortorganisiert. Um ein Byte zu adressieren, muss die Adresse einer Programmmarke mit 2 multipliziert werden. Die Multiplikation mit 2 wirkt auf das Z-Register wie ein Linkshift, sodaß das Bit0 zu 0 wird. Mit dem Bit0 wird selektiert, ob das Low-Byte(0) oder das High-Byte(1) eines Wortes im Programmspeicher adressiert wird. Das RAMPZ-Register bildet mit dem Z-Register das Adressregister. Das RAMPZ-Register erweitert den 15Bit-breiten Abdressraum des Z-Register, sodaß auch Adressen eines Programmspeichers über 64KB hinaus adressiert werden können.

Beispielsweise verfügt der Atmega128  über 128KB Programmspeicher. Das RAMPZ-Register hat dabei die Aufgabe den oberen oder  unteren 64KB Bereich zu selektieren.

 

 

Siehe auch

LOADLABEL , LOADADR

 

 

Beispiel

LOADWORDADR label


Languages   English Deutsch  
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
In anderen Sprachen
Sprache