Pointeradresse in einer STRUCT

JoeCool16

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe da ein Problem mit den Pointeradressen. Und zwar habe ich eine STRUCT im Instanz-DB mit Namen "Schieberegister". Diese STRUCT beginnt bei Adresse 100.0. Diese STRUCT beinhaltet z.B. WORT1, WORT2, WORT3 und WORT4 oder auch ein ARRAY oder eine weitere STRUCT
Die Anfangsadresse der STRUCT erhalte ich mit L P##Schieberegister.
Wie bekomme ich denn nun die Adresse der darunterliegenden Variablen wie z. B. WORT4? L P##Schieberegister.WORT4 geht ja wohl nicht, oder?

Vielen Dank für eure Hilfe.

Gruß
JoeCool16
 
Hallo Joe,
probiere mal folgendes:

Code:
L P##Schieberegister // Anfangsadresse als Pointer
T #Zeiger // DWORD Format
L LW [#Zeiger] // erstes Wort von Struct
T MW x
L #Zeiger
L P#2.0
+D
T #Zeiger
L LW [#Zeiger] // zweites Wort von Struct
So eine abfrage wird hauptsächlich in einer Schleife gemacht.
Das Beispiel funktioniert in einer FC mit Temp Variablen, da es sich bei Dir um einen Instanz DB handelt,
könnte es auch sein das Du statt: L LW [#Zeiger] das schreiben musst: L DIW[#Zeiger]
Bin mir jetzt nicht sicher und kann es nicht testen.
 
Vielen Dank für eure Antworten.
Ich hab es mir fast schon gedacht, dass man den Inhalt nicht mehr symbolisch adressieren kann.

Auslesen der Struktur ist kein Problem. Kann man mit dem Offset ja relativ einfach machen:

Code:
L P##Schieberegister // Anfangsadresse als Pointer
LAR1
 
L DBW [AR1,P#0.0]
T MW x
 
L DBW [AR1,P#2.0]
T MW y
 
L DBW [AR1,P#4.0]
T MW z

Nur hat man so ein Problem, wenn sich die Struktur verändert, deshalb wollte ich das ganze symbolisch machen.

Gruß
JoeCool16
 
Zurück
Oben