IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

从REXX调用汇编程序


IBM大型机论坛 -> PL / I& Assembler
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
威廉·唐尼

新的用户


已加入:2020年7月1日
帖子:13
地点:英国

发布发表:2020年11月16日星期一4:13 pm
引用回复

我一直在研究使用LINKMVS从REXX调用一个Assembler模块,并且效果很好。但是,我想传递的字段长于LINKMVS可以传递的最大32,767字节。通过查阅IBM手册(TSO / E REXX参考),我发现了对SHVBLOCK的引用,看起来它使我可以从Assembler模块访问REXX变量。

我还没有尝试使用它,在开始之前有一些查询:

-这是我应该允许我在由REXX调用的Assembler模块中引用REXX变量的内容吗?
-我可以在“汇编器”模块中更改REXX变量吗?
-我想花点时间解决这个问题,是否可以从Assembler例程编写转储,以便我可以看到控制块的外观?我已经添加了转储,并将PSW /寄存器写入日志,但是我不知道如何编写转储。
回到顶部
查看用户资料 发送私信
史蒂夫·迈尔斯

活跃的成员


已加入:2013年11月30日
帖子:870
地点:宇宙

发布发表于:2020年11月19日,星期四2:08 pm
引用回复

  • 至少在TSO环境中获取Rexx(或CLIST)变量的“官方”例程为IKJCT441。
  • IKJCT441可以创建以及更改Rexx或CLIST变量。
我有一个使用IKJCT441的接近生产的模块。这是十年前完成的。我断断续续地使用它,没有任何已知的问题,但是由于我开发了其他方法来替换Rexx / CLIST代码中使用的TSO命令,因此它几乎没有用。通过电子邮件将PM发送给我,我将向您发送使用IKJCT441的代码。在500多个行中,它太大了,无法包含在响应中。

编写代码以创建转储样式的输出并不是很困难。我从未为此目的开发通用模块,但在有需要时总是为每种用途编写自定义转储程序。它生成这样的行-
码:
啊ddddd啊啊啊啊啊啊 tt * tttttttttttttttt *
hhhh ddddd以十六进制和十进制表示行中数据的相对偏移量。 hhhhhhhh是4字节二进制数据的8个十六进制数字; ttttttttttttttttt是该行中数据的翻译文本。这在80字节3270显示器上显示得很好。只是一些想法。
  • 使用以下语句定义输出行-
    码:
    DL       DS    0C
    偏移量  DS    CL4
    偏移量  DS    CL6,C
    双字1   DS    CL8,C
    DWORD2   DS    CL8,CL2
    双字3   DS    CL8,C
    DWORD4   DS    CL8,C
    文字    DS    C,CL16,C
    德伦     EQU   *-DL
  • 定义一个这样的表-
    码:
    健达   DC    AL2(00,DWORD1-DL + 0,DTEXT-DL + 01)
             DC    AL2(01,DWORD1-DL + 2,DTEXT-DL + 02)
             DC    AL2(02,DWORD1-DL + 4,DTEXT-DL + 03)
             DC    AL2(03,DWORD1-DL + 6,DTEXT-DL + 04)
             DC    AL2(04,DWORD2-DL + 0,DTEXT-DL + 05)
             DC    AL2(05,DWORD2-DL + 2,DTEXT-DL + 06)
             DC    AL2(06,DWORD2-DL + 4,DTEXT-DL + 07)
             DC    AL2(07,DWORD2-DL + 6,DTEXT-DL + 08)
             DC    AL2(08,DWORD3-DL + 0,DTEXT-DL + 09)
             DC    AL2(09,DWORD3-DL + 2,DTEXT-DL + 10)
             DC    AL2(10,DWORD3-DL + 4,DTEXT-DL + 11)
             DC    AL2(11,DWORD3-DL + 6,DTEXT-DL + 12)
             DC    AL2(12,DWORD4-DL + 0,DTEXT-DL + 13)
             DC    AL2(13,DWORD4-DL + 2,DTEXT-DL + 14)
             DC    AL2(14,DWORD4-DL + 4,DTEXT-DL + 15)
             DC    AL2(15,DWORD4-DL + 6,DTEXT-DL + 16)
    健达N  均衡器   (*-GENTAB)/6
    表中的每个条目都定义了如何构造输出线。前两个字节代表16个字节中每个字节的16个字节的偏移量,其后是2个字节,它们定义了十六进制区域中转换为2个十六进制数字的字节的偏移量,随后是2个字节,定义了in字节的文本数据的输出行。
  • 定义一个转换表,将不可打印的字节转换为。该表允许打印小写字母,大写字母和数字-
    码:
    生命周期评价      均衡器   C'A'-X'40'
    LCJ      均衡器   C'J'-X'40'
    LCS      均衡器   C'S'-X'40'
    贸易协定    DC    0CL256' ',(C' ')C'.',C' ',(LCA-(*-TRTAB))C'.'
             DC    9AL1(*-TRTAB),(LCJ-(*-TRTAB))C'.'
             DC    9AL1(*-TRTAB),(LCS-(*-TRTAB))C'.'
             DC    8AL1(*-TRTAB),(C'A'-(*-TRTAB))C'.'
             DC    9AL1(*-TRTAB),(C'J'-(*-TRTAB))C'.'
             DC    9AL1(*-TRTAB),(C'S'-(*-TRTAB))C'.'
             DC    8AL1(*-TRTAB),(C'0'-(*-TRTAB))C'.'
             DC   10AL1(*-TRTAB),(256-(*-TRTAB))C'.'
    该表中有很多汇编程序技巧。如果有的话,它将无法与Assist Assembler一起使用。我从内存中构建了这些表,但是我认为它们将正确地组装。
回到顶部
查看用户资料 发送私信
威廉·唐尼

新的用户


已加入:2020年7月1日
帖子:13
地点:英国

发布发表于:2020十一月20,星期五3:56下午
引用回复

关于从“汇编器”模块编写转储,您的帖子让我开始思考。我所做的就是将要查找的内容写到数据集。不只是简单地插入H'00'并查看SYSUDUMP,而是比仅打印到Log的寄存器好。一旦我得到您关于以转储格式打印存储的建议(非常感谢)并编写了代码,以后我便可以重用。

我还有另一个问题,您可能可以帮助。我试图批量运行REXX,但是遇到了问题(很可能是因为我没有正确设置环境)。但是,如果确实将其设置好并使Assembler模块转储,这会将转储写入SYSUDUMP吗?我只是想知道是否值得坚持到底,还是花我的时间编写自己的代码以转储存储。

我将使用我的电子邮件地址向您发送PM。
回到顶部
查看用户资料 发送私信
史蒂夫·迈尔斯

活跃的成员


已加入:2013年11月30日
帖子:870
地点:宇宙

发布发表:2020年11月20日星期五7:25 pm
引用回复

个人想法。对于DSECT中描述的数据,我概述的小型转储程序要比SYSUDUMP或SNAP更好。好多了。与尝试将存储地址转换为DSECT中的偏移量相比,偏移量要容易得多。在任何地方都无法找到打印转储中的存储。
回到顶部
查看用户资料 发送私信
威利·詹森(Willy Jensen)

活跃用户


已加入:2015年9月1日
帖子:416
地点:丹麦

发布发表:2020年11月23日星期一7:27 pm
引用回复

您可以从汇编程序中添加,更新和删除REXX变量。我发现IRXEXCOM是最简单的界面。该程序必须作为REXX函数启动,即rval = MyPgm(options)。
您可以找到一组REXX变量的宏 在这里访问:
回到顶部
查看用户资料 发送私信
威廉·唐尼

新的用户


已加入:2020年7月1日
帖子:13
地点:英国

发布发表:星期二2020年11月24日下午3:44
引用回复

感谢Steve / Willy的慷慨帮助。有点想办法 icon_smile.gif
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> PL / I& Assembler

 


类似主题
话题 论坛 回覆
该主题已锁定:您无法编辑帖子或回复。 汇编器-十进制小数-PACK in ... PL / I& Assembler 3
没有新帖 从REXX调用FTP的任何示例吗? 清单和REXX 1
没有新帖 SummeRx:REXX z / OS的新框架 清单和REXX 6
没有新帖 更改存在的LRECL的命令... JCL和VSAM 7
没有新帖 使用REXX访问SDSF;我是什么 ... 清单和REXX 38
搜索我们的论坛:


回到顶部