对 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
相关信息
- 有关 DFHEIENT 宏的参考信息,请参阅 DFHEIENT 宏。
- 有关 DFHEIRET 宏的更多信息,请参阅 为汇编语言程序编码 DFHEIRET 宏 和 DFHEIRET 宏。
- 有关 DFHEISTG 存储器的更多信息,请参阅 为汇编语言程序扩展动态存储器。
- 有关 DFHECALL 和 DFHEIRET 宏的更多信息,请参阅 DFHECALL 宏。
- 有关 EXEC 接口的参考信息,包括设计概述,控制块,模块,出口和跟踪,请参阅 EXEC 接口。