我需要实现一个汇编模块,以读取JCL(F,F,FB,V,VB)中的任何文件。该模块在我的COBOL程序中被称为。我已经设法实现了打开,读取和关闭功能。
链接类似于:
01 LNK-MOD.
05 LNK-MOD-OPTION PIC X(01) VALUE SPACE.
05 LNK-MOD-STATUS PIC X(01) VALUE SPACE.
05 LNK-MOD-LINE PIC X(32676) VALUE SPACES.
该模块称为folow:
CALL MOD01 USING LNK-MOD.
其他人是否有一些链接用法的示例< ---->>组装?
ps。该模块必须是组装的,因为我在执行时间内没有文件大小(LRECL)。
预先感谢。
可能感兴趣的是语言环境(LE)汇编器注意事项。由于您是从COBOL打电话给您的,因此您正在Le Enclave中运行。
除了限制COBOL编译器所规定的 Working-Storage
(或Local-Storage
,如果您使用的话),您可以将可以传递给汇编程序例程的数据量没有限制。<<<<<<<<<<<<<<<<<<<<<<<</p>
您在问题中显示的CALL
应该在编码时可以正常工作,除非您需要模块名称周围的单个引号。
CALL 'MOD01' USING LNK-MOD.
也许您有一个问题解决 32K存储的问题,因为基本寄存器只能让您解决4K。您只需要需要来解决第一个4K。GET
和PUT
宏只需要数据区域的地址。
由于某种原因您需要解决整个32K区域,则必须为每个4K块分配一个基本寄存器。这是很多要放弃的寄存器。我建议不要这样做,除非绝对必要。
您可能需要考虑使用C运行时例程fopen, fread, fwrite, fclose
,而不是使用汇编程序例程。C运行时例程可直接从您的COBOL程序中调用,这是一个功能语言环境。
如果您在链接COBOL程序和汇编程序方面遇到困难,则需要在链接时间内包含汇编器模块。
INCLUDE ddname(MOD01)
在此示例中,必须在链接步骤JCL中定义ddname
,其DSN
必须是包含MOD01的PDS或PDSE。
几年前,IBM更改了JCL中所谓的PGM=IEWL
。它曾经称为链接编辑器。他们现在称其为粘合剂。这有时令人困惑。JCL保持不变。我是一个老人,所以我仍然称其为链接编辑器或链接器。我有时也会说"控制卡"而不是"控制语句"即使自1980年代中期以来我还没有使用过打孔卡。