어셈블리 모듈을 호출하는 COBOL 프로그램이 있습니다. 이 모듈은이 모듈 내부에서 얻은 일부 데이터에 대한 포인터 ('버퍼'라고 부름)를 반환합니다. 작업 저장소의 변수를이 포인터로 지정하고 데이터를 사용할 수있는 방법은 무엇입니까?어셈블리에서 COBOL로 반환 된 포인터에서 데이터 버퍼 주소를 지정하는 방법
작업 저장 :
01 WK-MOD-AREA.
03 WK-MOD-PTR PIC 9(09) COMP VALUE 0.
01 WK-BUFFER-PTR USAGE POINTER.
01 FILLER REDEFINES WK-BUFFER-PTR.
03 WK-BUFFER-PTR-COMP PIC 9(09) COMP.
01 WK-BUFFER-DATA PIC X(5656) VALUE SPACES.
절차 부문 :
CALL 'MYMOD' USING WK-MOD-AREA.
mymod를가 WK-MOD-PTR의 주소를 반환 내 COBOL 발신자에
내가 좋아하는 뭔가가있다.
난 그냥 사용하는 주소에게 데이터를 tryed :
MOVE WK-MOD-PTR TO WK-BUFFER-PTR-COMP.
SET ADDRESS OF WK-BUFFER-PTR TO WK-BUFFER.
를하지만 나에게 compiller 오류 제공 : 사전에
==000657==> IGYPS2161-S "ADDRESS OF" operand "WRK-BUFFER"
was found as the receiving operand of a "SET" statement,
but was not a level-01 or level-77 "LINKAGE SECTION" item.
The statement was discarded.
감사합니다.
'CALL'MYMOD 'USING'WK-MOD-AREA '대신에'CALL'MYMOD 'USING WK-MOD-AREA' ('BY REFERENCE' 변수를 전달) 'BY VALUE'). –
@SimonSobisch 내 잘못 ... 그것은 참조로 acctualy 전화입니다. '따옴표'가 없습니다. –