XPI 语法
XPI 函数使用特殊语法。 每个函数的描述仅定义特定于该调用的选项。
进行 XPI 调用中描述了适用于所有函数调用的选项。 使用以下参数类型:
- name1, name2,….
- 其中每个是指给定大小的字段的名称 (以字节为单位)。 “name1” 表示您指定的名称应该是 1 字节字段的名称。
- 文学
- 字面值格式的数字,例如 B '00000000', X'FF ', X'FCF4', "0"或具有类似值的等同符号。
- 表达式 (expression)
- 有效汇编语言表达式: 十进制整数或在汇编语言中有效的任何算术表达式 (包括符号值); 例如:
20; L'AREA; L'AREA+10; L'AREA+X'22'; SYMB/3+20 . - (Rn)
- 寄存器引用。 除了围绕自变量的括号外,此处显示的括号也是必需的。 例如: OPTION ((R5))。
- 块描述符
- 表示数据地址和数据长度字段的源。 块描述符可以是单个值或双精度值。 以下是单值形式:
OPTION(blkdname)- blkdname
- 块描述符的名称。 一对连续的全字,其中第一个词包含数据的地址,第二个词包含数据的长度 (以字节为单位) 作为全字二进制值。 对于此单值格式,不接受寄存器表示法。
以下是双值形式:OPTION(addr,len)- 阿德尔
- 数据地址为 {namea | (Ra) | aliteral}:
- 纳梅
- 包含数据地址的位置的名称
- (Ra)
- 包含数据地址的寄存器
- 阿利泰尔
- 地址常量文字; 例如: A (data)。
- len
- 数据长度为 {namel | (Rn) | expression}:
- 纳梅尔
- 包含二进制全字以提供数据长度 (以字节计) 的位置的名称
- (Rn)
- 一个寄存器,其内容以全字二进制指定数据的字节数
- 表达式 (expression)
- 在汇编语言中有效的十进制整数或任何算术表达式 (包括符号值); 例如:
L'AREA ; L'AREA+10 ; L'AREA+X'22' ; SYMB/3+20 .
- 缓冲区描述符
- 表示数据地址和最大数据长度字段的源。 还保留缓冲区描述符的部分以充当输出信息的接收字段。 缓冲区描述符可以是单个值或多个值。 以下是单值形式:
OPTION(bufdname)- Bufdname
- 缓冲区描述符的名称。 由最多四个连续全字组成的组,表示缓冲区描述符的多个组件。 这些字段解释如下:
- 第一个字包含数据的地址 (输入)。
- 保留第二个字以接收数据的当前长度 (以字节为单位) ,作为全字二进制值 (输出)。 如果指定了三个组件,那么第三个组件将映射到此字。 如果在缓冲区描述符中仅指定了两个组件,那么第二个组件将映射到此字。
- 第三个词包含数据的最大长度 (以字节为单位) ,作为全字二进制值 (输入)。 如果指定了三个组件,那么第二个组件将映射到此字。 如果在缓冲区描述符中仅指定了两个组件,那么不使用此字段。
- 第四个字保留给 XPI 使用。
以下是多值形式:OPTION(addr,maxlen,*)- 阿德尔
- 数据地址为 {namea | (Ra) | aliteral}:
- 纳梅
- 包含数据地址的位置的名称
- (Ra)
- 包含数据地址的寄存器
- 阿利泰尔
- 地址常量文字,例如 A (数据)。
- 马克斯伦
- 最大数据长度为 {namel | (Rn) | expression}:
- 纳梅尔
- 包含二进制全字的位置的名称,提供最大数据长度 (以字节为单位)
- (Rn)
- 一种寄存器,其内容以全字二进制指定数据的最大字节数
- 表达式 (expression)
- 在汇编语言中有效的十进制整数或任何算术表达式 (包括符号值); 例如:
L'AREA ; L'AREA+10 ; L'AREA+X'22' ; SYMB/3+20 . - *
- 必需参数,用于指示参数列表将用于保留字段。 如果对此参数进行了编码,那么必须从缓冲区描述符中返回的 _N 组件获取必需值。