LOADWORDADR/de

(Difference between revisions)
Jump to: navigation, search
Line 55: Line 55:
 
<span style="font-family: arial;">&nbsp;</span>
 
<span style="font-family: arial;">&nbsp;</span>
  
= <span class="f_Header">See also</span> =
+
= <span class="f_Header">Siehe auch</span> =
  
[[LOADLABEL]],&nbsp;[[LOADADR]]
+
,&nbsp;
  
<span style="font-family: Arial;">&nbsp;</span>
+
<span style="font-family: arial;">&nbsp;</span>
  
<span style="font-family: Arial;">&nbsp;</span>
+
<span style="font-family: arial;">&nbsp;</span>
  
 
= <span class="f_Header">Example</span> =
 
= <span class="f_Header">Example</span> =

Revision as of 23:39, 22 February 2013

Contents

Funktion

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

 

 

Syntax

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

 

 

Example


LOADWORDADR label

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