对 AMODE (64) 汇编语言程序的 DFHEIENT 宏进行编码

对于 AMODE (64) 程序, DFHEIENT 宏调用 AMODE (64) PROLOG 程序,该程序分配工作存储器以保存任何用户变量并供 CICS® 使用。 AAMODE (64) PROLOG 程序设置此存储器的 CICS 部分。 当程序返回时,此代码将设置由 DFHEIENT 参数指定的寄存器。 必须指定 DFHEIENT 宏参数以指定程序使用相对寻址指令,并且必须至少使用一个寄存器来寻址程序中的静态数据。

可以为 DFHEIENT 宏指定以下操作数:
代码
指定值 0 (缺省值) 以指定相对寻址。
数据 (DATAREG)
为应用程序指定一个或多个工作存储器寄存器。 缺省值为寄存器 13 ,建议使用寄存器 13 作为第一个数据动态存储器寄存器。 如果没有, DFHECALL 宏生成的代码将添加额外的指令来处理寄存器 13。 DFHECALL 宏确保寄存器 13 寻址 DFHEISTG 在动态存储器中定义的保存区域。
EIBREG
指定用于寻址 EXEC 接口块 (EIB) 的寄存器。 缺省值为寄存器 11。
状态
为要使用的应用程序指定一个或多个静态寄存器。 缺省值为 register 3。
静态
指定静态区域开头的汇编程序标签。 必须指定值; 此参数没有缺省值。
AMODE (64) 程序必须使用相对寻址,因为仅支持相对寻址。 使用 NOPROLOG 转换程序选项并指定具有相应参数的 DFHEIENT 宏以进行相对寻址。 如果未指定 DFHEIENT 宏,那么转换程序将在没有必需参数的情况下插入 DFHEIENT 宏,并发生以下错误:
12,DFHEIENT -AMODE 64-STATIC REQUIRED

对于相对寻址,您不需要任何基本寄存器来寻址程序指令,但必须使用 STATREG 和 STATIC 参数来设置至少一个静态寄存器来寻址程序中的静态数据。

示例

以下两个示例 DFHEIENT 语句生成相同的代码。
  • 在第一个语句中,将对所有参数进行编码 (指定缺省值)。
    DFHEIENT CODEREG=0,DATAREG=13,EIBREG=11,STATREG=3,STATIC=STAT
  • 在第二个语句中,仅对没有缺省值的参数进行编码。
    DFHEIENT STATIC=STAT

相关信息