COBOL和HLASM(汇编)之间的链接贷款超过32kbytes



我需要实现一个汇编模块,以读取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。GETPUT宏只需要数据区域的地址。

由于某种原因您需要解决整个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年代中期以来我还没有使用过打孔卡。

最新更新