.hash pseudo-op

用途

将散列值与外部符号关联。

语法

描述
.hash 名称StringConstant

描述

散列字符串值包含类型检查信息。 它由链接编辑器和程序装入器用于在执行程序之前检测变量不匹配和自变量接口错误。

散列字符串值通常由强类型语言的编译器生成。 符号的散列值只能在组合件中设置一次。 请参阅 XCOFF 对象 (a.out) 文件格式中的 类型检查部分 ,以获取有关类型编码和检查的更多信息。

参数

描述
名称 表示符号。 因为这应该是外部符号,所以 Name 应该出现在 .extern.globl 语句中。
StringConstant 表示类型检查散列字符串值。 此参数由表示十六进制散列码的字符组成,并且必须在集合 [0-9A-F] 或 [0-9a-f] 中。

散列字符串包含以下三个字段:

  • "语言标识" 是表示每种语言的 2 字节字段。 第一个字节是 0x00。 第二个字节包含与 .source 伪操作中列出的语言代码相同的预定义语言代码。
  • "一般散列" 是一个 4 字节的字段,表示描述数据符号或函数的最一般形式。 它是 AIX®支持的语言中的最大公共分母。 可将通用散列用于此字段。
  • "语言散列" 是一个 4 字节的字段,其中包含更详细的,由语言指定的数据符号或函数表示。

注: 散列字符串的长度必须为 10 个字节。 否则,当使用 -w 标志时,将报告一条警告消息。 由于每个字符都由两个 ASCII 码表示,因此 10 字节的散列字符串由 20 个十六进制数字组成的字符串表示。

示例

以下示例说明了 .hash 伪操作的用法:


   .extern b[pr]
   .extern a[pr]
   .extern e[pr]
   .hash b[pr],"0000A9375C1F51C2DCF0"
   .hash a[pr],"ff0a2cc12365de30"  # warning may report
   .hash e[pr],"00002020202051C2DCF0"