Einfach ermitteln, ob in einem DB ein Bit gesetzt wurde

KingShango

Level-1
Beiträge
22
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich möchte einen DB, der ausschließlich aus boolschen Variablen besteht, dahingehend untersuchen, ob ein Bit gesetzt wurde.
Ich könnte eine Schleife programmieren, die jedes einzelne Bit, ggf. zu DWord zusammengefasst, überprüft (mittels indirekter Adressierung). Gibt es eine einfachere Möglichkeit ?
Schonmal Danke
 
Hallo,
ich möchte einen DB, der ausschließlich aus boolschen Variablen besteht, dahingehend untersuchen, ob ein Bit gesetzt wurde.
Ich könnte eine Schleife programmieren, die jedes einzelne Bit, ggf. zu DWord zusammengefasst, überprüft (mittels indirekter Adressierung). Gibt es eine einfachere Möglichkeit ?
Schonmal Danke

Vergleich doch das Doppelword einfach auf den Wert Null.
Ob eine Schleife lohnt hängt von der Anzahl der Doppelworte ab.

Gruß
raika
 
Hallo,

Du kannst alle DWORD mit OD verodern (evtl. in einer Schleife) und am Ende das Ergebnis auf <>0 abfragen. Noch schneller fällt mir zur Zeit auch nichts ein.

MfG SPS_Fuzzy
 
Hier mal ein kleines Beispiel:
Code:
      AUF   "STOERMELDUNGEN DB"

      L     P#0.0
      T     #pointer_1

      L     0
      T     #ergebnis

      L     32                          //Anzahl Störmeldungen (DWordweise)
SC02: T     #zaehler

      L     DBD [#pointer_1]            // Lade Datendoppelwort
      L     0                           // Lade 0
      ==D                               // keine Störmeldung !!!
      SPB   NUL2                        // Ergebnis nicht hochzählen
      L     #ergebnis                   // bei Erg <> 0 Ergebnis hochzählen
      L     1                           // um 1 erhöhen
      +I    
      T     #ergebnis

NUL2: NOP   0                           // Zeiger erhöhen auf nächstes DD
      L     #pointer_1
      L     P#4.0
      +D    
      T     #pointer_1
      L     #zaehler
      LOOP  SC02                        // Schleife solange, bis #zaehler auf 0

      L     #ergebnis                   // bei Ergebnis <> 0 liegt Fehler vor
      L     0
      <>I   
      =     "M1.0 Sammelfehler"

@SPS_Fuzzy

Hast Recht, verodern ist wahrscheinlich weniger Aufwand. Na ja, wenn man mal in seinen eingefahrenen Bahnen denkt :ROFLMAO:.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, so mach ich das. So ähnlich hatte ich mir das auch schon vorgestellt. Ich dachte nur, vielleicht gibt es da schon ne fertige Funktion in der Library. Vielen vielen Dank !
 
Zurück
Oben