LOADWORDADR/de

From MCS Wiki AVR
< LOADWORDADR
Revision as of 18:50, 23 February 2013 by Galahat (Talk | contribs)
Jump to: navigation, search

Contents

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 eine Byteadresse zu erzeugen, muss diese mit 2 multipliziert werden. Das RAMPZ-Register bildet mit dem Z-Register das Adressregister.

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 erweitert den 15Bit-breiten Abdressraum des Z-Register, sodaß auch Adressen

des Programmspeichers über 64KB hinaus adressiert werden können.

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

zu selektieren.

 

 

Siehe auch

 

 

Beispiel



Languages   English Deutsch  
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language
Database error - MCS Wiki AVR

Database error

Revision as of 18:50, 23 February 2013 by Galahat (Talk | contribs)
Jump to: navigation, search
A database query syntax error has occurred. This may indicate a bug in the software. The last attempted database query was:
(SQL query hidden)
from within function "". Database returned error "1020: Record has changed since last read in table 'avr_page' (localhost)".
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language