LOADWORDADR/de

From MCS Wiki AVR
< LOADWORDADR(Difference between revisions)
Jump to: navigation, search
(Anmerkungen)
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
 
= <span class="f_Header">Funktion</span> =
 
= <span class="f_Header">Funktion</span> =
  
Läd das Z-Register und sezt RAMPZ wenn vorhanden.
+
 
 +
Läd das Z-Register und setzt RAMPZ wenn vorhanden.
  
 
<span style="font-family: arial;">&nbsp;</span>
 
<span style="font-family: arial;">&nbsp;</span>
Line 9: Line 11:
 
= <span class="f_Header">Syntax</span> =
 
= <span class="f_Header">Syntax</span> =
  
<span class="f_Syntax">LOADWORDADR&nbsp;</span>label
+
Var =&nbsp;<span class="f_Syntax">LOADWORDADR</span>(label )
 
+
 
<span style="font-family: arial;">&nbsp;</span>
 
<span style="font-family: arial;">&nbsp;</span>
  
Line 32: Line 33:
  
 
  LDI R30,Low(label * 2)
 
  LDI R30,Low(label * 2)
 
+
&nbsp;
 
  LDI R31,High(label * 2)
 
  LDI R31,High(label * 2)
 
+
&nbsp;
 
  LDI R24,1 or CLR R24
 
  LDI R24,1 or CLR R24
 
+
&nbsp;
 
  STS RAMPZ, R24
 
  STS RAMPZ, R24
 +
&nbsp;
  
&nbsp;
+
<span style="font-family: arial;">Die Programmspeicher der&nbsp;AVR sind Wortorganisiert. Um&nbsp;ein&nbsp;Byte zu adressieren, muss die Adresse einer Programmmarke mit 2 multipliziert werden.</span>
 +
Die Multiplikation mit 2&nbsp;wirkt auf das Z-Register wie ein Linkshift, sodaß das Bit0 zu 0 wird. Mit dem&nbsp;Bit0 wird selektiert, ob das Low-Byte(0) oder das High-Byte(1) eines Wortes im Programmspeicher&nbsp;adressiert wird. Das RAMPZ-Register&nbsp;bildet mit dem Z-Register das Adressregister. Das RAMPZ-Register erweitert den 15Bit-breiten Abdressraum des Z-Register, sodaß auch Adressen
 +
eines&nbsp;Programmspeichers über 64KB hinaus adressiert werden können.
  
<span style="font-family: arial;">Die Programmspeicher der&nbsp;AVR sind Wortorganisiert. Um&nbsp;eine&nbsp;Byteadresse zu erzeugen, muss diese mit 2 multipliziert werden. Das RAMPZ-Register&nbsp;bildet mit dem Z-Register das Adressregister.</span>
+
Beispielsweise&nbsp;verfügt der Atmega128 &nbsp;über 128KB Programmspeicher. Das RAMPZ-Register hat dabei die Aufgabe den oberen oder&nbsp; unteren 64KB Bereich zu selektieren.
 
+
Die Multiplikation mit 2&nbsp;wirkt auf das Z-Register wie ein Linkshift, sodaß das Bit0 zu 0 wird. Mit dem&nbsp;Bit0 wird selektiert, ob das Low-Byte(0) oder das High-Byte(1) eines Wortes im Programmspeicher&nbsp;adressiert wird. Das RAMPZ erweitert den 15Bit-breiten Abdressraum des Z-Register, sodaß auch Adressen
+
 
+
des&nbsp;Programmspeichers über 64KB hinaus adressiert werden können.
+
 
+
Beispielsweise&nbsp;verfügt der Atmega128 &nbsp;128KB Programmspeicher. Das RAMPZ-Register hat dabei die Aufgabe den oberen oder&nbsp; unteren 64KB Bereich
+
 
+
zu selektieren.
+
  
 
<span style="font-family: arial;">&nbsp;</span>
 
<span style="font-family: arial;">&nbsp;</span>
Line 57: Line 53:
 
= <span class="f_Header">Siehe auch</span> =
 
= <span class="f_Header">Siehe auch</span> =
  
,&nbsp;
+
[[LOADLABEL]]&nbsp;,&nbsp;[[LOADADR]]
  
<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">Beispiel</span> =
 
= <span class="f_Header">Beispiel</span> =
 +
 +
LOADWORDADR label
 +
 +
<br/><br/>{{Languages}}
  
<br/>
+
[[Category:BASCOM Language Reference/de]]

Latest revision as of 21:10, 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 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  
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language