Hi Fuerchau,
genau das ist Antwort auf meine Frage! Super, ich danke dir.
Nur kleine Anpassung: FILLER muss X(12), weil die numerische Variable 9(9) BINARY ist 4Bytes groß und insgesamt muss es 16Bytes sein, weil Pointers 16Bytes allozieren.
Code:
IDENTIFICATION DIVISION.
PROGRAM-ID. PTRDIFF.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 TEST-STRING-1 PIC X(160)
VALUE "green eggs and ham".
01 TEST-STRING-1-PTR POINTER.
01 TEST-STRING-2-PTR POINTER.
01 TEST-STRING-1-PTRR REDEFINES TEST-STRING-1-PTR.
05 FILLER PIC X(12).
05 OFFSET1 PIC 9(9) BINARY.
01 TEST-STRING-2-PTRR REDEFINES TEST-STRING-2-PTR.
05 FILLER PIC X(12).
05 OFFSET2 PIC 9(9) BINARY.
01 OFFSET PIC 9(9) BINARY.
PROCEDURE DIVISION.
MAIN.
SET TEST-STRING-1-PTR TO ADDRESS OF TEST-STRING-1.
SET TEST-STRING-2-PTR TO ADDRESS OF TEST-STRING-1.
SET TEST-STRING-2-PTR UP BY 2.
COMPUTE OFFSET = OFFSET2 - OFFSET1.
DISPLAY OFFSET.
STOP RUN
.
Bookmarks