.tc 伪操作

用途

将表达式组合到目录 (TOC) 条目中。

语法

描述
.tc [Name][TC]Expression[, Expression , ...]
注: 包含 TC 的粗括号是语法的一部分, 指定可选参数。

描述

.tc 伪操作将 表达式 组合到 TOC 条目中,该条目包含例程的地址,函数描述符的地址或外部变量的地址。 .tc 语句只能出现在 .toc 伪操作的作用域内。 TOC 条目可作为主体重新定位。 TOC 条目语句可以具有本地标签,这些标签将与第一个 .toc 语句声明的整个 TOC 的开头相关。 可以使用这些本地标签和 TOC 寄存器 GPR 2 来访问 TOC 条目中包含的地址。

仅包含一个地址的 TOC 条目可由绑定程序组合。 如果 TOC 条目具有相同的名称并引用相同的控制部分 (csect) (符号) ,那么会发生此情况。 对引用 csect 中非零偏移量的 TOC 条目进行编码时,请务必小心。 为了防止 TOC 条目的意外组合,应该将唯一名称分配给引用 csect 中不同偏移量的 TOC 条目。

参数

描述
名称 指定创建的 TOC 条目的名称。 StorageMappingClass是用于 TOC 输入的 TC。 名称[TC] 可用于在适当情况下引用 TOC 条目。
expression 指定进入 TOC 条目的符号或表达式。

示例

以下示例说明如何使用 .tc 伪操作:

.toc
# Create three TOC entries, the first
# with the name proga, the second
# with the name progb, and the last
# unnamed.
T.proga:        .tc proga[TC],progr[RW],dataA
T.progb:        .tc progb[TC],proga[PR],progb[PR]
T.progax:       .tc  proga[TC],dataB
                .tc       [TC],dataB
                .csect proga[PR]
# A .csect should precede any statements following a
# .toc/.tc section which do not belong in the TOC.
                l 5,T.proga(2)   # The address of progr[RW]
                                 # is loaded into GPR 5.
                l 5,T.progax(2)  # The address of progr[RW]
                                 # is loaded into GPR 5.
                l 5,T.progb+4(2) # The address of progb[PR]
                                 # is loaded into GPR 5.