Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Behandlung von COMMON-Bereichen

COMMON-Bereiche sind Abschnitte, die zum Zeitpunkt des Bindens noch keine Daten oder Befehle enthalten, sondern nur Platz dafür reservieren. Diese Bereiche können nach dem Laden der Ladeeinheit als Daten-Kommunikationsbereiche zwischen verschiedenen Modulen verwendet oder als Platz für CSECTs eingesetzt werden.

COMMON-Bereichen, die in verschiedenen Modulen der Ladeeinheit definiert sind, und alle den gleichen Namen haben, weist DBL einen gemeinschaftlichen Speicherbereich zu. Diesen Bereich wählt er so groß, dass der längste COMMON-Bereich dieses Namens hineinpasst. Es ist nicht möglich, diesen Speicherbereich während des Programmlaufes durch einen BIND-Makroaufruf zu vergrößern. Gibt es keinen Programmabschnitt (CSECT) mit dem Namen des COMMON-Bereichs, so verzögert der DBL die Bearbeitung, bis alle Module geladen sind. Hat eine CSECT den gleichen Namen wie COMMON-Bereiche, gibt der DBL dieser CSECT die Adresse des COMMON-Bereichs, d.h. der COMMON-Bereich wird beim Laden der Ladeeinheit mit dieser CSECT initialisiert. Beim Initialisieren werden außerdem Attribute und Inhalt des COMMON-Bereiches mit denen der CSECT in Übereinstimmung gebracht.

Wenn ein Programmabschnitt und ein COMMON-Bereich den gleichen Namen haben, berücksichtigt der DBL die COMMON-Anweisung bereits bei der Bearbeitung des betreffenden Programmabschnitts.

  • Erscheint in der Eingabe der COMMON-Bereich vor dem gleichnamigen Programmabschnitt, gibt der DBL dem COMMON-Bereich die größere der beiden Längen.

  • Befindet sich bei der Eingabe der Programmabschnitt vor dem gleichnamigen COMMON-Bereich, so wird dieser vom DBL so groß wie der Programmabschnitt gewählt, unabhängig von der Länge, die in der COMMON-Definition angegeben ist.

Für COMMON-Bereiche ist die Autolink-Funktion nicht wirksam. Deshalb wird ein Modul mit einem COMMON-Bereich, auf den ein EXTRN oder VCON verweist, nicht automatisch nachgeladen.

Namenskonflikte behandelt DBL wie in "Behandlung von Namenskonflikten" beschrieben.