2

370/アセンブラと QSAM を使用して一時データセットにデータを書き込むプログラムを作成しようとしています。put を実行すると、soc01 が返されます。

アセンブラー コードでの DCB 宣言は次のようになります。

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 では、宣言は次のようになります。

//TEMP     DD DSN=&&TEMP,UNIT=PUB,DISP=(MOD,KEEP,DELETE),
//            DCB=(LRECL=25,BLKSIZE=3000)

put コマンドは次のようになります。

         PUT    TEMPFILE                                                
         MVC    0(25,1),HIGHSALE

問題は私の JCL 宣言にあると思われますが、何かを見つけることができません。

4

1 に答える 1

2

S0C4を取得しています。つまり、自分のものではないストレージにアクセスしようとしています。異常終了の指示がPUTマクロの展開先のコードの一部にあることを (PSW から、またはその他の手段を介して) 既に判断しており、アセンブリ リストに「no active using for」を示すメッセージがないことを前提としています。 ..."、レジスタ 1 はどこを指していますか? 位置指定モードを使用しているため、レジスタ 1 はデータを指している必要があります。

余談ですが、プログラムの DCB マクロでブロック サイズがコーディングされていることは通常ありません。ほとんどのショップは、システムで決定されたブロック サイズを使用しているため、プログラムまたは JCL のいずれにも表示されません。コーディングに慣れていれば、何も害はありません。

于 2011-07-17T13:47:46.110 に答える