首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JCL/assembler for QSAM put-locate中正确声明DCB

如何在JCL/assembler for QSAM put-locate中正确声明DCB
EN

Stack Overflow用户
提问于 2011-07-17 01:51:55
回答 1查看 1.7K关注 0票数 2

我正在尝试编写一个程序,该程序将使用370/汇编程序和QSAM将一些数据写入临时数据集。在执行put时,我得到了一个soc01。

我在汇编程序代码中的DCB声明如下所示:

代码语言:javascript
复制
TEMPFILE DCB   DDNAME=TEMP,                                            X
               DEVD=DA,                                                X
               DSORG=PS,                                               X
               MACRF=PL,GL,                                            X
               RECFM=FBA,                                              X
               LRECL=25,                                               X
               BLKSIZE=3000,                                           X
               EODAD=EOF3

在JCL中,声明如下所示:

代码语言:javascript
复制
//TEMP     DD DSN=&&TEMP,UNIT=PUB,DISP=(MOD,KEEP,DELETE),
//            DCB=(LRECL=25,BLKSIZE=3000)

put命令如下所示:

代码语言:javascript
复制
         PUT    TEMPFILE                                                
         MVC    0(25,1),HIGHSALE

我怀疑问题出在我的JCL声明中,但我没有找到任何东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-17 21:47:46

你得到了一个S0C4,也就是说,你正在尝试访问不属于你的存储。假设您已经(通过PSW或通过一些其他方法)确定了滥用指令位于您的PUT宏扩展到的某些代码中,并且在您的程序集清单中没有任何消息表明"no active using for...",那么寄存器1指向哪里?由于您使用的是定位模式,因此寄存器1必须指向您的数据。

顺便说一句,我通常不会在程序的DCB宏中看到块大小编码。大多数商店都使用系统确定的块大小,因此您在程序或JCL中都看不到它。如果你更愿意编码的话,它不会有任何伤害。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6719154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档