Variablenadresse im SRAM angeben?

Gast #1430035
Lesenswert?

Sers.

Daten im SRAM zu speichern ist ja kein Problem, aber wie gebe ich die 
Adresse an?
Im Moment habe ich es so gemacht:
1
.dseg
2
variable1: .BYTE 1
3
variable2: .BYTE 1
4

5
.cseg
6
STS variable, r16
7
LDS variable, r16
8
....

Wenn ich das ganze debugge, sehe ich im AVR Studio, dass die 
Variablendaten irgendwo im SRAM abgelegt werden.
Ich möchte aber später über Pointer darauf zugreifen und dabei den 
Pointer erhöhen/erniedrigen können und so von Zelle zu Zelle springen. 
Im Moment ist das nicht möglich, da die Daten auseinander liegen.

Kann ich irgendwie angeben variable: .BYTE 1 Adresse XY ? Oder sowas in 
der Art?
#1430053
Lesenswert?

Foreigner schrieb:
> Das Tutorial habe ich schon gelesen, aber das was ich suchte war
> Folgendes:
>
>
1
.dseg
2
> ;SRAM Startadresse oder beliebige andere Adresse
3
> .ORG SRAM_START
4
> var: .Byte 1

Verstehe jetzt den Zusammenhang nicht.
Alle im Progamm vorgefundenen DSEG werden sowieso in der Reihenfolge im 
SRAM abgelegt in der sie im Programm auftauchen. Der .ORG ist zwar nett 
aber eigentlich so nicht nötig.

Und wenn du über den Z-Pointer zugreifst hast du ja im Regelfall so 
etwas wie eine Tabelle. Gib einfach beim .BYTE an, wieviele Bytes du 
brauchst und der Assembler reserviert dir die entsprechende Anzahl in 
garantiert aufeinanderfolgenden Zellen :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren