2011-10-09 23 views
2

が、このプログラムでは、この問題アセンブリコードプログラミングz390メインフレーム

で終了していないのために、未知の問題は、明らかに、未知のマクロのコードを拒否するようにアセンブラになり、またはマクロのようなアセンブリに見えるもの。私はこれを修正する方法がわかりません。

私はz390ポータブルメインフレームアセンブラとエミュレータ(http://www.z390.org/)を使用しています。

別のリンク:www.z390.org/z390_Documentation.htm

関連するPDFがhttp://tradingwiz.net63.net/pdf/Sessions5and6.pdfです。

アセンブリマニュアルはhttp://publibz.boulder.ibm.com/epubs/pdf/asmr1020.pdfですが、適用に問題があります。

アップデート:私はまだ「マクロ= DSORG = PSの欠落」に関するエラーを削除したいと私はベースレジスタがあるアセンブラに指示する方法がわからない(「なしベースレジスタが見つからない」)

別の質問:あなたが知っている、特に理解しやすいものはありますか?

さらに詳しい情報が必要な場合は、お手伝いします。

 TITLE 'CS 4321 Program #4 by J. Colt Wright' 
     PRINT NOGEN  
COPY SUBENTRY 

    TITLE 'PROGRAM 4 80/80 LISTING' 

    PRINT NOGEN 
COPY2 SUBENTRY 

    WTO 'PROG4 COPY PROG4 (ASCII) TO COPY (ASCII)' 
    OPEN (INFILE,INPUT) 
    OPEN (OUTFILE,OUTPUT) 
    WTO 'Files opened successfully' 
* 
LOOP EQU * 
GET INFILE,IRECORD 
    MVC ORECORD,=CL133' ' 
    MVC ORECORD(80),IRECORD 
    PUT OUTFILE,ORECORD 
    B LOOP 
* 
EOF EQU * 
    CLOSE (INFILE,,OUTFILE) 
    WTO 'PROG4 ENDED OK' 
    SUBEXIT 


INFILE DCB DDNAME=INFILE, X 
       DSORG=PS,   X 
       RECFM=FT,   X 
       LRECL=72,   X 
       EODAD=EOF,  X 
       MACRF=GM   X 
* 
OUTFILE DCB DDNAME=OUTFILE, X 
       DSORG=PS,   X 
       RECFM=FT,   X 
       LRECL=80,   X 
       MACRF=PM   
* 
IRECORD DC CL72' ' 
ORECORD DC CL80' ' 
      ENDPGM DS D 
      END COPY 

20:22:31 PROG4  MZ390 START USING z390 V1.5.05 ON J2SE 1.6.0_26 10/08/11 
20:22:31 PROG4  AZ390 AZ390E error 29  (1/29)211     DSORG=PS,   X 
20:22:31 PROG4  AZ390 AZ390I ERRSUM missing macro = DSORG=PS, 
20:22:31 PROG4  AZ390 AZ390E error 29  (1/30)212     RECFM=FT,   X 
20:22:31 PROG4  AZ390 AZ390I ERRSUM missing macro = RECFM=FT, 
20:22:31 PROG4  AZ390 AZ390E error 29  (1/31)213     LRECL=72,   X 
20:22:31 PROG4  AZ390 AZ390I ERRSUM missing macro = LRECL=72, 
20:22:31 PROG4  AZ390 AZ390E error 29  (1/32)214     EODAD=EOF,  X 
20:22:31 PROG4  AZ390 AZ390I ERRSUM missing macro = EODAD=EOF, 
20:22:31 PROG4  AZ390 AZ390E error 29  (1/33)215     MACRF=GM   X 
20:22:31 PROG4  AZ390 AZ390I ERRSUM missing macro = MACRF=GM 
20:22:31 PROG4  AZ390 AZ390E error 29  (1/36)252     DSORG=PS,   X 
20:22:31 PROG4  AZ390 AZ390I ERRSUM missing macro = DSORG=PS, 
20:22:31 PROG4  AZ390 AZ390E error 29  (1/37)253     RECFM=FT,   X 
20:22:31 PROG4  AZ390 AZ390I ERRSUM missing macro = RECFM=FT, 
20:22:31 PROG4  AZ390 AZ390E error 29  (1/38)254     LRECL=80,   X 
20:22:31 PROG4  AZ390 AZ390I ERRSUM missing macro = LRECL=80, 
20:22:31 PROG4  AZ390 AZ390E error 29  (1/39)255     MACRF=PM 
20:22:31 PROG4  AZ390 AZ390I ERRSUM missing macro = MACRF=PM 
20:22:31 PROG4  AZ390 AZ390E error 29  (1/43)259     ENDPGM DS D 
20:22:31 PROG4  AZ390 AZ390I ERRSUM missing macro = ENDPGM 
20:22:31 PROG4  AZ390 AZ390E ERRSUM Critical Error Summary Option 
20:22:31 PROG4  AZ390 AZ390E ERRSUM Fix and repeat until all nested errors resolved 
20:22:31 PROG4  AZ390 AZ390E ERRSUM missing macro =DSORG=PS, 
20:22:31 PROG4  AZ390 AZ390E ERRSUM missing macro =RECFM=FT, 
20:22:31 PROG4  AZ390 AZ390E ERRSUM missing macro =LRECL=72, 
20:22:31 PROG4  AZ390 AZ390E ERRSUM missing macro =EODAD=EOF, 
20:22:31 PROG4  AZ390 AZ390E ERRSUM missing macro =MACRF=GM 
20:22:31 PROG4  AZ390 AZ390E ERRSUM missing macro =LRECL=80, 
20:22:31 PROG4  AZ390 AZ390E ERRSUM missing macro =MACRF=PM 
20:22:31 PROG4  AZ390 AZ390E ERRSUM missing macro =ENDPGM 
20:22:31 PROG4  AZ390 AZ390E ERRSUM total missing copy files =0 
20:22:31 PROG4  AZ390 AZ390E ERRSUM total missing macro files =8 
20:22:31 PROG4  AZ390 AZ390E ERRSUM total undefined symbols  =0 
20:22:31 PROG4  AZ390 AZ390E ERRSUM total mz390 errors = 0 
20:22:31 PROG4  AZ390 AZ390E ERRSUM total az390 errors = 10 
20:22:32 PROG4  AZ390 AZ390I FID= 1 ERR= 10 c:\Program Files\Automated Software Tools\z390\CS4321\PROG4.MLC 
20:22:32 PROG4  MZ390 ENDED RC=12 SEC= 0 MEM(MB)= 47 IO=2420 

     TITLE 'CS 4321 Program #4 by J. Colt Wright' 
     PRINT NOGEN  
COPY   SUBENTRY 
    TITLE 'PROGRAM 4 80/80 LISTING' 
    PRINT NOGEN 
COPY2 SUBENTRY 

    WTO 'PROG4 COPY PROG4 (ASCII) TO COPY (ASCII)' 
    OPEN (INFILE,INPUT) 
    OPEN (OUTFILE,OUTPUT) 
    WTO 'Files opened successfully' 
* 
LOOP EQU * 
    GET INFILE,IRECORD 
    MVC ORECORD,=CL133' ' 
    MVC ORECORD(80),IRECORD 
    PUT OUTFILE,ORECORD 
    B LOOP 
* 
EOF EQU * 
    CLOSE (INFILE,,OUTFILE) 
    WTO 'PROG4 ENDED OK' 
    SUBEXIT 

    SUBEXIT 


INFILE DCB  DDNAME=INFILE,           X 
       DSORG=PS,            X 
       RECFM=FT,            X 
       LRECL=72,            X 
       EODAD=EOF,            X 
       MACRF=GM 
* 
OUTFILE DCB  DDNAME=OUTFILE,  
       DSORG=PS,            X 
       RECFM=FT,            X 
       LRECL=80,            X 
       MACRF=PM 
* 
IRECORD DC CL72' ' 
ORECORD DC CL80' ' 
ENDPGM DS D 
END COPY 


08:39:00 PROG4  MZ390 START USING z390 V1.5.05 ON J2SE 1.6.0_26 10/09/11 
08:39:00 PROG4  AZ390 AZ390E error 144  (1/15)141  MVC ORECORD,=CL133' ' 
08:39:00 PROG4  AZ390 AZ390I no base register found 
08:39:00 PROG4  AZ390 AZ390E error 29  (1/39)258      DSORG=PS,            RECFM=FT,            LRECL=80,            MACRF=PM 
08:39:00 PROG4  AZ390 AZ390I ERRSUM missing macro = DSORG=PS, 
08:39:00 PROG4  AZ390 AZ390E ERRSUM Critical Error Summary Option 
08:39:00 PROG4  AZ390 AZ390E ERRSUM Fix and repeat until all nested errors resolved 
08:39:00 PROG4  AZ390 AZ390E ERRSUM missing macro =DSORG=PS, 
08:39:00 PROG4  AZ390 AZ390E ERRSUM total missing copy files =0 
08:39:00 PROG4  AZ390 AZ390E ERRSUM total missing macro files =1 
08:39:00 PROG4  AZ390 AZ390E ERRSUM total undefined symbols  =0 
08:39:00 PROG4  AZ390 AZ390E ERRSUM total mz390 errors = 0 
08:39:00 PROG4  AZ390 AZ390E ERRSUM total az390 errors = 2 
08:39:01 PROG4  AZ390 AZ390I FID= 1 ERR= 2 c:\Program Files\Automated Software Tools\z390\CS4321\PROG4.MLC 
08:39:01 PROG4  MZ390 ENDED RC=12 SEC= 0 MEM(MB)= 47 IO=2374 
+0

何日?私はそのシステムに気づいた。 –

+3

これはなぜ修正されましたか? jQueryが不十分ですか? – Louis

答えて

2

私はz390エミュレータには専門家だが、私は、標準のz/OSアセンブラの知っているから、私はあなたがコード化されているDCBマクロ呼び出しに(あなたの継続文字で」X年代を見てみたいです)。一般的には列72になければならず、継続されたステートメントは各継続行の列16から開始する必要があります。

最初のDCBの最後の継続行で、MACRF = GMの「X」継続文字が削除されました。これは明細の最後です。

また、あなたのENDPGMラベルは列1にする必要があり、アセンブラはそれが声明だと思っそうでない場合は/マクロ呼び出し

は、z/OSアセンブラにチャンスを与える - 20年、30年後、あなたはそれを好きに成長します。

+0

ロスはすべての点で正しいです。 Z/390.orgはHLASMと互換性があると主張しているため、重要な固定列の位置は72. –

+0

です。私が18〜28年もの間、私の髪を引き出していることを知ってうれしく思います。アセンブラ。 – Jared

0

マクロDSORG = PS ...が不足しているのは、OUTFILE DCBマクロの呼び出しの最初の行に継続がないためです。マクロ呼び出しはOUTFILE DCBからMACRF = PMまで数行後に実行されるので、アセンブラに最後の行以外のすべての行を続ける必要があります。これは、すべて1つのステートメントです。私はシンタックスのことがバットの痛みであることは知っていますが、アセンブラ、特にマクロプロセッサを使い続ければ、非常に柔軟でエレガントな機能があります。

欠落しているベースレジスタについては、いくつかあります。私はエミュレータを知らないと言っていたが、ORECORDまたはCL133のリテラルのベースレジスタを持たないという不満があるように見える。私はそれが後者であると推測している。リテラルは通常、コード内のLTORG命令の位置またはCSECTの末尾に基づいてコード内に配置されます。生成されたLTORG命令があるかどうか(SUBENTRYまたはSUBEXITによって生成される可能性がありますが、インストールに固有のマクロ/コピーブックであるため、他に何をしているかを知る方法がありません)推測)。あなたが2つのSUBENTRYステートメントと2つのSUBEXITSを持っていることは、それを見ても奇妙なことです。そのようなマクロが通常どんなことをしているかを推測すると、私はそれぞれ1つのマクロを期待します。 COPY2 SUBENTRYとSUBEXITSのいずれかを取り出して、それがより良いかどうか確認してください。それに失敗した場合は、z390にいくつかのオプションを付けて、生成されたステートメントの完全なリストを取得できるかどうかを確認してください(PRINT NOGENをPRINT GENに変更してください)。

私はちょうどその宿題で私の子供を助けて、今これを完了しました!がんばろう。

関連する問題