解释符号交叉引用

hello.s 组合件程序的符号交叉引用示例。

以下是 hello.s 组合件程序的符号交叉引用示例:

Symbol          File             CSECT            Line #
.main           hello.s          --                 22
.main           hello.s          .main              28   *
.main           hello.s          --                 29
.main           hello.s          .main              43   *
.printf         hello.s          --                 76
.printf         hello.s          --                104
T.data          hello.s          data               17   *
T.data          hello.s          data               69
T.hello         hello.s          .main              28   *
TOC             hello.s          TOC                23
_helloworld     hello.s          --                 74
_helloworld     hello.s          data              113   *
argarea         hello.s          --                 35   *
argarea         hello.s          --                 40
data            hello.s          --                 17
data            hello.s          data               17   *
data            hello.s          data              111   *
linkarea        hello.s          --                 36   *
linkarea        hello.s          --                 40
locstckarea     hello.s          --                 37   *
locstckarea     hello.s          --                 40
main            hello.s          --                 18
main            hello.s          main               21   *
main            hello.s          main               28
nfprs           hello.s          --                 39   *
nfprs           hello.s          --                 40
nfprs           hello.s          --                 59
nfprs           hello.s          --                 90
ngprs           hello.s          --                 38   *
ngprs           hello.s          --                 40
ngprs           hello.s          --                 59
ngprs           hello.s          --                 90
szdsa           hello.s          --                 40   *
szdsa           hello.s          --                 64
szdsa           hello.s          --                 82
szdsa           hello.s          --                 88

第一列列出了出现在源程序中的符号名称。 第二列列出符号所在的源文件名。 第三列列出了在其中定义或定位符号的 csect 名称。

在列出 csect 名称的列中,––(双短划线) 表示下列其中一项:

  • 尚未定义符号的 csect。 在示例中,第一个和第三个.main(.main[PR]) 通过第 42 行定义。
  • 符号是外部符号。 在示例中,.printf是外部符号,因此不与任何 csect 关联。
  • 要定义的符号是符号常量。 当使用 .set 伪操作来定义符号时,该符号是一个符号常量,并且没有与其关联的 csect。 在示例中,argarea,linkarea,locstckarea,nfprs,ngprsszdsa是符号常量。

第四列列出符号所在的行号。 行号后的 * (星号) 指示在此行中定义了符号。 如果行号后没有星号,那么在行中引用符号。