.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.