我有以下JCL来编译汇编语言程序: -
//JRETEST JOB (A925,22360679777),'AESANJA',NOTIFY=&SYSUID,
// MSGLEVEL=(1,1)
//PROCLID JCLLIB ORDER=IBMUSER,LEARN.ASMJCL
// EXEC ASMACL
//SYSOUT DD SYSOUT=*
//C.SYSIN DD *
TEST START 0
PRINT NOGEN
* SAMPLE PROGRAM
BASR 15,0
USING *,15
PRINTOUT MYNAME,*
MYNAME DC C'ADRIAN EKA SANJAYA'
END TEST
/*
当我运行这个时,我得到一个“未定义的操作字段”错误,指示PRINTOUT
是未定义的操作。
Screen showing undefined operation field
我很困惑,因为我正在关注guide,代码类似: -
//JRETEST JOB (A925,2236067977),′ J.EHRMAN′
// EXEC ASMACLG
//C.SYSIN DD *
Test Start 0 First line of program
Print NoGen
* Sample Program
BASR 15,0 Establish a base register
Using *,15 Inform the Assembler
PRINTOUT MyName,* Print name and stop
MyName DC C′ John R. Ehrman′ Define constant with name
END Test Last statement
/*
答案 0 :(得分:2)
PRINTOUT
不是z/OS Principles of Operation中定义的操作代码。 PRINTOUT
显然也不是在ASMACL编目过程中执行ASMA90程序的步骤的SYSLIB并置中的库中定义的宏。
您的讲师可能会故意这样做,开始教您如何使用Assembly列表诊断代码问题。 IBM高级汇编程序(HLASM)的文档为here。该文档包含有关如何使用Assembly列表诊断代码问题的信息。
答案 1 :(得分:2)
根本原因是Ehrman的书中使用的宏未包含在任何标准宏库中。您可以从书中复制它们,也可以从https://idcp.marist.edu/documents/33945/44724/Macros+%281%29.zip/b268c9c7-c9c5-32a5-d078-072131ef4625?t=1551806362564获取它们,然后将它们复制到某些maclib中以备后用。
答案 2 :(得分:0)
在我看来,你在JCL中使用了一个小写字母。因此,将//c.SYSIN更正为//C.SYSIN可以完成工作。 CU Andreas