LOADWORDADR/de
(→Siehe auch) |
(→Anmerkungen) |
||
(One intermediate revision by one user not shown) | |||
Line 41: | Line 41: | ||
| | ||
− | <span style="font-family: arial;">Die Programmspeicher der AVR sind Wortorganisiert. Um | + | <span style="font-family: arial;">Die Programmspeicher der AVR sind Wortorganisiert. Um ein Byte zu adressieren, muss die Adresse einer Programmmarke mit 2 multipliziert werden.</span> |
+ | 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. | |
− | + | ||
− | + | ||
− | + | ||
− | Beispielsweise verfügt der Atmega128 128KB Programmspeicher. Das RAMPZ-Register hat dabei die Aufgabe den oberen oder unteren 64KB Bereich | + | |
− | + | ||
− | zu selektieren. | + | |
<span style="font-family: arial;"> </span> | <span style="font-family: arial;"> </span> |
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
Beispiel
LOADWORDADR label
Languages | English • Deutsch |
---|