LOADWORDADR/de

(Difference between revisions)
Jump to: navigation, search
(Anmerkungen)
(Beispiel)
Line 64: Line 64:
  
 
= <span class="f_Header">Beispiel</span> =
 
= <span class="f_Header">Beispiel</span> =
 +
 +
LOADWORDADR label
  
 
<br/><br/>{{Languages}}
 
<br/><br/>{{Languages}}
  
 
[[Category:BASCOM Language Reference/de]]
 
[[Category:BASCOM Language Reference/de]]

Revision as of 20:53, 23 February 2013

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

LOADWORDADR label


Languages   English Deutsch  
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language