2011-10-09 24 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彙編我看看你的延續字符(「X的在DCB宏調用已經編寫)。一般來說,他們應該在第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,因此除了最後一行之外,您需要對所有行進行延續,以告知彙編程序它是所有語句。我知道語法的東西是一個屁股疼痛,但如果你堅持使用匯編器,特別是宏處理器,你會發現它有一些非常靈活和優雅的功能。

至於缺少的基地註冊...可能是一些事情。正如我所說我不知道​​模擬器,但它看起來好像抱怨沒有ORECORD或= CL133'字面值的基址寄存器。我猜這是後者。文字通常位於代碼中,該代碼基於代碼中LTORG指令的位置或CSECT的末尾。我無法從列表中知道您是否有生成的LTORG指令(可能由SUBENTRY或SUBEXIT生成,但是它們是特定於您的安裝的宏/副本,因此我無法知道它們除了做什麼以外猜測)。從看它的奇怪的是,你有2 SUBENTRY語句和2 SUBEXITS。從猜測這些宏通常做什麼,我會預期每個1。因此,請嘗試取出COPY2 SUBENTRY和其中一個SUBEXITS,看看它是否更好。如果做不到這一點,看看你是否能得到生成的語句的完整列表,與z390一些選項(更改打印NOGEN至打印GEN一開始),並且可能會有幫助。

我剛剛完成了幫助我的孩子有沒有做作業,現在這個!祝你好運。