查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
维奈knj
新的用户
已加入:2008年5月26日 帖子:50 地点:班加罗尔
|
|
|
|
你好
我想在后台打印中显示一些字段或数据以进行调试。
谁能告诉我相当于COBOL中“ DISPLAY”的汇编程序指令,可以在汇编程序中对其进行编码以显示数据?谢谢
问候,
维奈 |
|
回到顶部 |
|
 |
罗伯特·桑普
全球主持人

已加入:2008年6月6日 帖子:8569 地点:美国爱荷华州迪比克
|
|
|
|
在汇编器中没有与COBOL的DISPLAY语句等效的语句。您可以将自己的例程编写为宏,但必须自己处理格式转换。 |
|
回到顶部 |
|
 |
维奈knj
新的用户
已加入:2008年5月26日 帖子:50 地点:班加罗尔
|
|
|
|
但是要编写宏,我们需要使用什么来在假脱机中显示数据。是否只需要使用PUT指令? |
|
回到顶部 |
|
 |
比尔·奥博伊尔
CICS主持人

已加入:2008年1月14日 帖子:2504 地点:美国乔治亚州亚特兰大
|
|
|
|
您 可以 使用带有ROUTCDE =(11)的WTO,它会写入JESMSGLG。
但是,在执行此操作之前,请先与现场运营人员联系。
法案 |
|
回到顶部 |
|
 |
罗伯特·桑普
全球主持人

已加入:2008年6月6日 帖子:8569 地点:美国爱荷华州迪比克
|
|
|
|
您将需要在程序中定义DCB,将其打开,设置打印行,然后输入数据-完成操作后关闭文件。您的JCL会将DD名称设置为SYSOUT = *(或站点的适当值)。 |
|
回到顶部 |
|
 |
黑莓
新的用户

加入时间:2009年1月6日 帖子:88 地点:IN
|
|
|
|
是的,您可以使用WTO宏
语法应为:
码: |
DISMSG WTO 文字= 世界贸易组织,ROUTCDE = 11 |
在要显示的存储区域之前添加一个名为WTOAR的半字。例如:
码: |
世界贸易组织 DC H'40'
WRKAR EQU *
佛罗里达州 DS CL20
FLDB DS PL4 |
..... 等等
半字WTOAR是将显示的字节长度。确保它不要太长(始终< 80 bytes)
Routcde = 11 会将您的邮件路由到假脱机中的Jesysmsg。 |
|
回到顶部 |
|
 |
彼得·荷兰
全球主持人

已加入:2009年10月27日 帖子:2475 所在地:荷兰,阿姆斯特尔芬
|
|
|
|
FWIW,我将使用我的工作存储器的快照。很有魅力。 |
|
回到顶部 |
|
 |
维奈knj
新的用户
已加入:2008年5月26日 帖子:50 地点:班加罗尔
|
|
|
|
嗨Nihal,
当我使用以下说明在JESMSG中显示时,我面临着ABEND SD23
DISMSG WTO TEXT = 味精1,ROUTCDE = 11
味精1 DC CL5'VINAY'
但是当我使用时工作很好
DISMSG WTO“程序测试程序执行”
我想显示变量或寄存器的内容。你能告诉我我该怎么做吗?谢谢 |
|
回到顶部 |
|
 |
彼得·荷兰
全球主持人

已加入:2009年10月27日 帖子:2475 所在地:荷兰,阿姆斯特尔芬
|
|
回到顶部 |
|
 |
维奈knj
新的用户
已加入:2008年5月26日 帖子:50 地点:班加罗尔
|
|
|
|
嗨,彼得,
我使用的方法与您提到的示例中提到的方法相同。但是我正在中止SOC1。
洛杉矶R3,MSG1
DISMSG 世贸组织 TEXT=(R3)
味精1 DC AL2(L'MSG1TXT)
味精1TXT DC C'程序TESTPGM执行 |
|
回到顶部 |
|
 |
彼得·荷兰
全球主持人

已加入:2009年10月27日 帖子:2475 所在地:荷兰,阿姆斯特尔芬
|
|
|
|
在您接受WTO指令后,MSG1和MSG1TXT是否立即生效?如果真是这样,难怪您的程序会中止。 WTO可能会异常终止,其终止代码为X'D23',而不是0C1。 |
|
回到顶部 |
|
 |
维奈knj
新的用户
已加入:2008年5月26日 帖子:50 地点:班加罗尔
|
|
|
|
是。 WTO指令后立即提供MSG1和MSG1TXT。
如果只是在WTO指令之后,我是否可以知道退出的原因?
我需要在程序结束时编写它们吗? |
|
回到顶部 |
|
 |
UmeySan
活跃的成员

已加入:2006年8月22日 职位:771 地点:德国
|
|
|
|
先生,早上好!
如果您只想显示一些简单的消息来简单地跟踪您的程序流程,那么在多个地方执行简单的WTO便可以。
WTO'这是:Label-13'
...或更灵活:
MVC WTOMSG1 + 017(008),= C'Label-13'
...
...
WTOMSG1 WTO'这是:xxxxxxxx'
WTO-Command自身使用8个字节。因此,文本字符的第一个字节是
wto-label + 8。在此示例中,Wto消息由以前的MVC修改。 |
|
回到顶部 |
|
 |
UmeySan
活跃的成员

已加入:2006年8月22日 职位:771 地点:德国
|
|
|
|
@ 维奈knj
快速回答您的最后一个问题。
您的wto没有任何指示。
您的wto后跟一个define-constant。
所以你得到了非法指示 |
|
回到顶部 |
|
 |
彼得·荷兰
全球主持人

已加入:2009年10月27日 帖子:2475 所在地:荷兰,阿姆斯特尔芬
|
|
|
|
UmeySan写道: |
@ 维奈knj
快速回答您的最后一个问题。
您的wto没有任何指示。
您的wto后跟一个define-constant。
所以你得到了非法指示 |
感谢您重复我的评论。 |
|
回到顶部 |
|
 |
维奈knj
新的用户
已加入:2008年5月26日 帖子:50 地点:班加罗尔
|
|
|
|
您好Peter / Umeysan
请让我知道以下说明有什么问题。我正在获取SD23异常终止...
DISMSG4 世贸组织 TEXT=OUTREC
开(OUTFLE,(OUTPUT))
DISMSG2 WTO“打开输出文件成功”
放出,收放
DISMSG3 WTO“写输出文件成功”
OUTREC DC 0CL15
FNAME DC CL5'VINAY'
LNAME DC CL5'KUMAR'
MNAME DC CL5'NAMA'
OUTFLE DCB DDNAME = OUTFILE,+
DSORG = PS,+
LRECL = 80,+
MACRF =(PM),+
RECFM = FB |
|
回到顶部 |
|
 |
彼得·荷兰
全球主持人

已加入:2009年10月27日 帖子:2475 所在地:荷兰,阿姆斯特尔芬
|
|
|
|
在outrec之前没有长度字段,并且在DISMSG3之后没有分支到其他编码。 |
|
回到顶部 |
|
 |
维奈knj
新的用户
已加入:2008年5月26日 帖子:50 地点:班加罗尔
|
|
|
|
嗨,彼得/梅梅,
请让我知道以下说明有什么问题。我正在中止SOC1。
开(OUTFLE,(OUTPUT))
DISMSG2 WTO“打开输出文件成功”
放出,收放
DISMSG3 WTO“写输出文件成功”
DISMSG6 WTO'定义超前'
OUTREC DC 0CL15
FNAME DC CL5'VINAY'
LNAME DC CL5'KUMAR'
MNAME DC CL5'NAMA'
DISMSG4 WTO“确定后超出”
OUTFLE DCB DDNAME = OUTFILE,+
DSORG = PS,+
LRECL = 80,+
MACRF =(PM),+
RECFM = FB
XR R15,R15
JESMSGS显示“打开输出文件成功”,“写输出文件成功”,“在定义输出之前”,并且在输出记录之后不显示我给出的任何内容。
请提示。谢谢 |
|
回到顶部 |
|
 |
黑莓
新的用户

加入时间:2009年1月6日 帖子:88 地点:IN
|
|
|
|
维奈knj写道: |
嗨Nihal,
当我使用以下说明在JESMSG中显示时,我面临着ABEND SD23
DISMSG WTO TEXT = 味精1,ROUTCDE = 11
味精1 DC CL5'VINAY'
|
维奈
您需要详细了解我在该线程的第一条评论中提供的代码示例。
味精1字段的前2个字节是要显示的字符数或字节数的长度。尝试以下代码,然后查看结果:
码: |
DISMSG WTO TEXT = 味精1,ROUTCDE = 11
味精1 DC H'40'
DC CL5'VINAY'
填料 DC 80CL1' ' |
是的,这样可以正常运行,因为字符串的长度是由WTO宏本身预先计算的 |
|
回到顶部 |
|
 |
维奈knj
新的用户
已加入:2008年5月26日 帖子:50 地点:班加罗尔
|
|
|
|
嗨Nihal,
作业在JESMSGLG中显示了VINAY,但该作业被SOC1放弃。
可能是什么原因? |
|
回到顶部 |
|
 |
彼得·荷兰
全球主持人

已加入:2009年10月27日 帖子:2475 所在地:荷兰,阿姆斯特尔芬
|
|
|
|
维奈knj写道: |
嗨Nihal,
作业在JESMSGLG中显示了VINAY,但该作业被SOC1放弃。
可能是什么原因? |
再一次,您尝试在WTO之后执行工作存储,因为您没有分支到可执行代码。如果您不了解,请停止尝试编写汇编程序。 SD23异常终止是由于未提供文本长度。其余请阅读手册:
MVS编程:授权
汇编程序服务参考,第4卷
(SETFRR-WTOR) |
|
回到顶部 |
|
 |
黑莓
新的用户

加入时间:2009年1月6日 帖子:88 地点:IN
|
|
|
|
维奈knj写道: |
嗨Nihal,
作业在JESMSGLG中显示了VINAY,但该作业被SOC1放弃。
可能是什么原因? |
维奈
根据错误(S0C1),我想:您需要将WTO宏语句保留在 可执行文件 您程序的一部分。 味精1应该保存在 工作区域 程序的一部分(即保留其余变量/字段的部分)。
一般规则是:无论何时编写程序 控制永远不会到达您的工作区域.
论坛中的其他一些人已经提出了这一建议。 |
|
回到顶部 |
|
 |
比尔·奥博伊尔
CICS主持人

已加入:2008年1月14日 帖子:2504 地点:美国乔治亚州亚特兰大
|
|
|
|
如前所述,您需要使数据可读,例如寄存器内容,例如R1-
码: |
双字 DS D
工作区域 DS CL16
ST R1,DWORD STORE IN 1ST-WORD
UNPK 工作区域(9),DWORD(5) UNPACK AS 9-BYTES
XC 双字,DWORD ENSURE X'00'S
MVZ WORKAREA(8),DWORD CLEAR ALL ZONES
TR 工作区域(8),= CL16'0123456789ABCDEF'
|
根据程序中的位置,您可以 可以 删除XC和MVZ并将“转换表”更改为= CL16'0123456789ABCDEF'-240,但以上内容对您有用,并且在不同的日子将是不同的讨论。
说完所有步骤后,可以在WORKAREA(8)中找到可读的寄存器值。
法案 |
|
回到顶部 |
|
 |
UmeySan
活跃的成员

已加入:2006年8月22日 职位:771 地点:德国
|
|
|
|
彼得
双重保证&安全胜过遗憾
...就重复评论而言
正如您在上一篇文章中看到的那样,它仍然相同 |
|
回到顶部 |
|
 |
维奈knj
新的用户
已加入:2008年5月26日 帖子:50 地点:班加罗尔
|
|
|
|
感谢Nihal /彼得。很抱歉让您遇到愚蠢的问题。
我知道我们不应该执行数据字段,而应该跳转到指令。
我在“ Branch”指令下包括了该指令,但仍在退出SOC1。
DISMSG WTO TEXT = 味精1,ROUTCDE = 11
后退 .
味精1 DC H'05'
DC CL5'VINAY'
填料DC 80CL1''
背部 XR R15,R15
返回
结束 |
|
回到顶部 |
|
 |
|