Forum: Mikrocontroller und Digitale Elektronik Variablenadresse im SRAM angeben?


von Foreigner (Gast)


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?

von Karl H. (kbuchegg)


Lesenswert?


von Foreigner (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


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 :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.