Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Beispiel eines Assembler-Hauptprogramms

&pagelevel(3)&pagelevel

Ein Assembler-Hauptprogramm soll PERCON als Unterprogramm aufrufen. Die Anweisungen werden von SYSDTA gelesen.

Ausdruck des Quellprogramms
PERUP    START
PERUP    AMODE ANY
PERUP    RMODE ANY
         BALR  8,0
         USING *,8
         LA    1,ATAB                  ADR. PARAMETERLEISTE ———————————  (1)
         LA    13,SAV                  ADR. SICHERSTELLUNGSBEREICH ————  (2)
         L     15,=V(PERCONU) —————————————————————————————————————————  (3)
         BALR  14,15                   UNTERPROGRAMMSPRUNG ————————————  (4)
         TERM
         SPACE 3
SAV      DS    20F                     SICHERSTELLUNGSBEREICH —————————  (5)
         SPACE
ATAB     DC    A(PARAM)                PARAMETERLEISTE ————————————————  (6)
         DC    A(RETCODE) —————————————————————————————————————————————  (7)
         DC    X'80000000' ————————————————————————————————————————————  (8)
         SPACE
RETCODE  DC    F'0' ———————————————————————————————————————————————————  (9)
         DC    12X'00' ———————————————————————————————————————————————— (10)
         SPACE
PARAM    DC    X'00000080'             ANWEISUNGEN VON SYSDTA ————————— (11)
         END   PERUP

(1)

Die symbolische Adresse ATAB der Adressleiste wird in Register 1 geladen.

(2)

Die symbolische Adresse SAV des Sicherstellungsbereichs wird in Register 13 geladen.

(3)

Eine V-Konstante mit der Adresse des Einsprungpunktes PERCONU wird in Register 15 geladen.

(4)

Hier erfolgt der Sprung ins Unterprogramm. Die Rücksprungadresse wird in Register 14 geladen.

(5)

Für den Sicherstellungsbereich werden 20 Worte reserviert.

Die Adressleiste wird definiert:

(6)

Adresskonstante PARAM, die auf den Parameterbereich zeigt.

(7)

Adresskonstante RETCODE, die auf den Bereich für Rücksprunginformation zeigt.

(8)

Endekriterium der Adressleiste.

Bereich für Rücksprunginformation:

(9)

Dieser Bereich wird für die Meldungsnummer der letzten auftretenden DVS-Meldung reserviert.

(10)

In diesem Bereich werden alle während des Programmlaufes auftretenden PERCON-Meldungen im Bereich PER0000 bis PER0095 registriert.

(11)

Parameterbereich, im 4. Byte steht X’80’, das bedeutet, die Anweisungen werden von SYSDTA im SDF-Format gelesen.

Übersetzen, Binden und Aufrufen des Programms (Ablaufprotokoll)

/DELETE-SYSTEM-FILE FILE-NAME=*OMF
/START-ASSEMBH
%  ASS6010 V01.4A10 OF BS2000 ASSEMBH  READY
//COMPILE SOURCE=ASS.TEST,MACRO-LIBRARY=$.MACROLIB
%  ASS6011 ASSEMBLY TIME: 21 MSEC
%  ASS6018 0 FLAGS, 0 PRIVILEGED FLAGS, 0 MNOTES
%  ASS6019 HIGHEST ERROR-WEIGHT: NO ERRORS
%  ASS6006 LISTING GENERATOR TIME: 5 MSEC
//END
%  ASS6012 END OF ASSEMBH
/START-BINDER
%  BND0500 BINDER VERSION 'V21.0A00' STARTED
//START-LLM-CREATION INTERNAL-NAME=ASSPROG1
//INCLUDE-MODULES LIBRARY=*OMF,ELEMENT=*ALL
//RESOLVE-BY-AUTOLINK LIBRARY=$.SYSLNK.PERCON.030 &*————————————————————— (12)
//SAVE-LLM LIBRARY=ASS.PROG.LIB
%  BND1501 LLM FORMAT: '1'
//END
%  BND1101 BINDER NORMALLY TERMINATED. SEVERITY CLASS: 'OK' 
/CREATE-FILE FILE-NAME=PERS.SEL
/ADD-FILE-LINK - &*—————————————————————————————————————————————————————— (13)
/   FILE-NAME=PERS.SEL,- 
/   ACCESS-METHOD=*SAM,-
/   LINK-NAME=PCOUT
/START-EXECUTABLE-PROGRAM - &*——————————————————————————————————————————— (14)
/  FROM-FILE=*LIBRARY-ELEMENT(LIBRARY=ASS.PROG.LIB,ELEMENT-OR-SYMBOL=ASSPROG1)
//MODIFY-PERCON-OPTIONS SYSOUT-LOGGING=*ALL &*——————————————————————————— (15)
//ASSIGN-INPUT-FILE - &*————————————————————————————————————————————————— (16)
//   FILE=*DISK-FILE(NAME=PERS.DPT),-
//   LINK-NAME=PCIN
//ASSIGN-OUTPUT-FILE - &*———————————————————————————————————————————————— (17)
//   FILE=*DISK-FILE(NAME=PERS.SEL),-
//   LINK-NAME=PCOUT
//SELECT-INPUT-RECORDS CONDITION=((38,9)='FRANKFURT') &*————————————————— (18)
//END &*————————————————————————————————————————————————————————————————— (19)
%  PER0030 NUMBER OF PROCESSED RECORDS FOR LINK='PCIN' 
          (FILE=:2OS6:$WKST.PERS.DPT):                  12

%  PER0030 NUMBER OF PROCESSED RECORDS FOR LINK='PCOUT' 
          (FILE=:2OS6:$WKST.PERS.SEL):                   1

%  PER0031 PERCON TERMINATED NORMALLY ——————————————————————————————————— (20)

(12)

Die Bindemodulbibliothek $.SYSLNK.PERCON.030 wird zum Binden zugewiesen.

(13)

Die Ausgabedatei PERS.SEL wird mit dem Dateikettungsnamen PCOUT und ihren Dateieigenschaften zugewiesen.

(14)

Das Programm ASSPROG1 in der Bibliothek ASS.PROG.LIB wird aufgerufen.

(15)

Der Sprung ins Unterprogramm PERCON ist erfolgt. Es werden PERCON Anweisungen erwartet.

Die MODIFY-PERCON-OPTIONS-Anweisung steuert die Ausgabe der Meldungen nach SYSOUT: Alle Meldungen werden im vollen Umfang nach SYSOUT ausgegeben.

(16)

Die Eingabedatei PERS.DPT wird zugewiesen.

(17)

Die Ausgabedatei PERS.SEL wird über den Dateikettungsnamen PCOUT mit PERCON verknüpft.

(18)

Sätze, die ab Spalte 38 C’FRANKFURT’ enthalten, werden in die Ausgabedatei übernommen.

(19)

Die END-Anweisung startet den Übertragungsvorgang und beendet PERCON.

(20)

PERCON wurde normal beendet.

Es erfolgt ein Programmsprung vom Unterprogramm ins Hauptprogramm zurück.