Adressregister: Pointeradresse anzeigen

sven

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

ich möchte gerne mit der Anweisung:

L DBLG // feststellen der Bausteinlänge

und dem Auslesen der aktuellen Pointeradressierung feststellen, wenn der Pointer in einen nicht mehr vorhandenen DB-Bereich liest oder schreibt.

Hierfür muß ich wissen, ob die Pointeradressierung die im Status im Bereich

AR1 oder AR2 (z.B. P#100.0)

steht, ausgelesen werden kann.


Kennt dafür jemand eine Möglichkeit?
 
Das wird nicht so einfach gehen, die Adresse steht in dem AR, welches vom Programmierer verwendet wurde, sicherlich vorzugshalber AR1, aber das ist halt nicht unbedingt so.

Dann hast du beim schreiben / lesen einen Offset, der dem AR nicht bekannt ist
Code:
T DBD[AR1,P#10.0]
.

pt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
du könntest dir allerdings einen Hilfspointer basteln.
Code:
hm_dword : dword ;

L Anfangsadresse
SLD 3
L P#100.0
+d
T hm_DWORD

L DBW [hm_dword]

Die von mir erzeugte Variable kansst du mit sicherheit auch mit deiner DB-Länge vergleichen ...
 
Wozu dient das?

Aber eine Idee- ist nicht zu Ende gedacht ist- dass Du dort wo Du das machst (zB Schleife) ein Bit setzt, und wenn Du wegen Bereichslängenfehler Schreiben/Lesen in einen OB springst und dieses Bit auswertest mit annähender Sicherheit sagen kannst dass dieser Bereich ungültig ist.
 
Das Leben ist so einfach

Hallo,

die Lösung sprang mich an:

TAR1 // AR1 im Pointerformat anzeigen lassen
SRD3 // durch rechtsschieben auf INT-Format bringen
L DBLG // Siemensbefehl zum anzeigen der DB-Länge in Byte
>D // Vergleich, das TAR1 < DBLG ist
=Störbit // sonst Störbit =1
 
wenn man liest

Hast du meinen Beitrag zur Kenntnis genommen :confused:

pt

Hallo,

die Lösung sprang mich an:

TAR1 // AR1 im Pointerformat anzeigen lassen
SRD3 // durch rechtsschieben auf INT-Format bringen
L DBLG // Siemensbefehl zum anzeigen der DB-Länge in Byte
>D // Vergleich, das TAR1 < DBLG ist
=Störbit // sonst Störbit =1
 
Ja, habe ich, aber damit lese ich den Inhalt des Adressbereichs aus. Ich wollte aber die Pointer Adresse sehen.
Ich habe mir das gestern schon von einem Kollegen erklären lassen, habe das aber nicht richtig verstanden. Er meinte auch, das dies die Lösung ist.
Nach meinen Versuchen lese ich aber damit, wie gesagt, den Inhalt aus.

:) Habe ich das jetzt korrekt dargestellt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kenne ja nicht dein Vorhaben, wenn du den Source noch schreibst, kannst du den ja entsprechend deinem Vorhaben erstellen, wenn es universell sein soll, wird das halt nicht gehen.

pt
 
Zurück
Oben