Titelbild Mikrocontroller

2.4. RAMP und EIND

RAMPX, RAMPY, RAMPZ

Um Adressen über 64k zu adressieren muss der Adresspointer größer als 16 Bit sein. Dies wird erreicht, indem jeweils ein weiteres Register (RAMP) mit den X-, Y- bzw. Z-Register verknüpft wird. Das RAMPX, RAMPY bzw. RAMPZ Register enthält dann das MSB der Adresse, wobei nur die Bits physikalisch vorhanden sind, die notwendig sind, um den implementierten Speicher zu adressieren.

Wenn Speicherzellen über 128k im Programmspeicher gelesen (ELPM) oder beschrieben (SPM) werden, dann wird das RAMPZ-Register mit dem Z-Register verknüpft, um die 24Bit-Adresse zu formen. Der LPM-Befehl berührt das RAMPZ-Register nicht, weil LPM nur in den unteren 64k ausgeführt werden kann. Daten, wie beispielsweise Texte, müssen daher im unteren Bereich des Flash abgelegt werden.

RAMPD

Das RAMPD-Register wird mit einem Operanden (K) verknüpft, um Speicher über 64k direkt zu adressieren. RAMPD und K bilden eine 24Bit-Adresse. RAMPD ist dann das MSB. Wird beim STS und LDS Befehl verwendet um Stellen im SRAM über 64k anzusprechen. Beim Xmega384 kommt das also nicht in Frage.

EIND

EIND wird mit dem Z-Register verknüpft, um indirekte Sprünge und Aufrufe im Programmspeicher oberhalb von 128k (64k word) zu ermöglichen. Verwendet bei den Befehlen EICALL, EIJMP
« zurück:
2.3. Register File
» weiter:
2.5. 16 Bit Register
Impressum