as 命令
用途
读取和汇编源文件。
语法
as [ -a Option [:Option] ] [ -o ObjectFile ] [ -n Name ] [ -u ] [ -l [ ListFile ] [ -W | -w ] [ -x [ XCrossFile ] [ -s [ ListFile ]] [ -m ModeName ] [-M] [-Eoff|on ] [ -p off|on ] [ -i ] [ -v ] [ 文件 ]
描述
as 命令读取和汇编指定的 File(按照约定,此文件以 .s 后缀结束)。 如果不指定 File,那么 as 命令读取和汇编标准输入。 缺省情况下,它将其输出存储于名为 a.out 的文件中。 输出以 XCOFF 文件格式存储。
as 命令的所有标志都是可选的。
标志
- -a 选项[:Option]
- 指定汇编程序选项。 定义了以下选项:
- 32
- 以 32 位方式对源文件进行组装。 这是缺省方式。 您也可以通过使用 OBJECT_MODE 环境变量来指定此方式。
- 64
- 以 64 位方式对源文件进行组装。 您也可以通过使用 OBJECT_MODE 环境变量来指定此方式。
- align-prefixed-csect=<yes/no>
- 指定是否将包含带前缀指令的控制部分 (csect) 的对齐增加到至少 64 字节的边界 (如果需要)。 64 字节是最小对齐方式,用于确保在链接组合程序时正确对齐带前缀的指令。 如果为 align-prefixed-csect 选项指定 yes ,那么将根据需要增大包含前缀指令的 csects 的对齐。 如果对 align-prefixed-csect 选项指定了 no ,并且在命令行上使用了 -w 标志,那么如果前缀指令是具有不够严格的对齐的 csect 的一部分,那么将显示一条警告消息。 有关更多信息,请参阅 .align 伪操作。
- align-prefixed-op=<yes/no>
指定当带前缀的指令跨越 64 字节边界时,是否通过在该指令前面加上无操作指令来对齐带前缀的指令。 如果对 align-prefixed-op 选项指定 yes ,那么将根据需要调整前缀指示信息。 如果为 align-prefixed-op 选项指定了 no ,并且在命令行上使用了 -w 标志,那么当前缀指令跨越 64 字节边界时,将显示一条警告消息。 有关更多信息,请参阅 .align 伪操作。
您可以使用 -a 参数指定多个选项。 如果指定冲突的标志,那么后续标志将覆盖前面的标志。 您可以使用 -a 参数指定多个用冒号分隔的选项,如以下示例中所示:-a 64:align-prefixed-csect=no - - l [ ListFile ]
- 产生汇编程序列表。 如果不指定文件名称,那么通过用 .lst 扩展名替换源文件名称的后缀扩展名来产生一个缺省名称。 按照约定,源文件后缀是 .s。 例如:产生一个缺省名称,即:
sourcefile.xyz如果从标准输入读取源代码,且不指定汇编程序列表的文件名称就使用 -l 标志,那么列表文件名称是 a.lst。sourcefile.lst - -m ModeName
- 指明汇编方式。 此标志的优先级比 .machine 伪操作低。
如果不使用此标志,且在源程序中不存在 .machine 伪操作,那么使用缺省汇编方式。 The default assembly mode has the POWER 家庭/PowerPC intersection as the target environment, but treats all POWER 家庭/PowerPC incompatibility errors (including instructions outside the POWER 家庭/PowerPC intersection and invalid form errors) as instructional warnings.
如果指定了无效的汇编方式,且在源程序中不存在 .machine 伪操作,那么报告一个错误且缺省汇编方式将用于汇编程序第 1 关的指令验证。
如果使用 -m 标志,ModeName 变量可以指定下列其中一个值:- ""
- Explicitly specifies the default assembly mode that has the POWER 家庭/PowerPC intersection as the target environment, but treats instructions outside the POWER 家庭/PowerPC intersection and invalid form errors as instructional warnings. -m 和空字符串参数(两个双引号)之间需要一个空格。
- com
- 指定POWER 系列/PowerPC交叉模式。 源程序只能包含POWER 系列和PowerPC 通用的指令,任何其他指令都会导致错误。 任何具有无效格式的指令都将导致错误、终止汇编进程,并不生成任何目标代码。 这是以 32 位方式组装时的缺省值。注: PowerPC 601 RISC 微处理器支持某些 POWER 系列 指示信息,但不符合 PowerPC 体系结构。 当使用 com 汇编方式时,这些指令将导致错误。
- ANY
- 指定任意方式。 汇编程序为任何识别的指令生成目标代码,而不考虑体系结构。 此方式主要用于操作系统开发以及测试和调试用途。注: 使用 any 组合件方式时,将忽略所有 POWER 系列 和 PowerPC 不兼容错误,并且不会生成任何警告。
- ppc
- 指定 PowerPC 方式。 源程序只能包含 PowerPC 指令。 任何其他指令将导致错误。注意:
- PowerPC 可选指示信息不是在每个 PowerPC 处理器中实现的,并且不属于 ppc 方式。 如果在用 ppc 汇编方式来汇编的源程序中出现这些指令,它们将生成错误。
- 某些指示信息符合 PowerPC 体系结构,但不受 PowerPC 601 RISC 微处理器支持。
- ppc64
- 指定 PowerPC64位方式。 源程序可以包含 64 位 PowerPC 指令。 这是以 64 位方式组装时的缺省值。
- pwr
- 指定 POWER® 模式。 源程序只能包含对 POWER 体系结构的 POWER 实施有效的指令。
- pwr2 或 pwrx
- 指定 POWER2 方式。 源程序只能包含对 POWER 体系结构的 POWER2 实现有效的指示信息。 pwr2 是首选值。 备用汇编方式值 pwrx 和 pwr2 含义相同。注: POWER 实现指示信息集是 POWER2 实现指示信息集的子集。
- pwr4 或 620
- 指定 PowerPC64 方式。 源程序只能包含对与 POWER4 兼容的处理器有效的指令。
- 601
- 指定 PowerPC 601 RISC 微处理器 方式。 源程序只能包含对 PowerPC 601 RISC 微处理器有效的指令。
PowerPC 601 RISC 微处理器 设计是在 基于 POWER 处理器的平台之前完成的。 PowerPC 601 RISC 微处理器不支持某些 PowerPC 指示信息。
注意: PowerPC 601 RISC 微处理器 实现 POWER 体系结构 以及一些未包含在 PowerPC 体系结构中的 POWER 系列 指令。 这允许现有 POWER 应用程序在基于 PowerPC 处理器的系统上以可接受的性能运行。PowerPC 601 RISC 微处理器 实现 基于 POWER 处理器的平台 以及一些 POWER 系列 指示信息未包含在 基于 POWER 处理器的平台中。 这允许现有 POWER 应用程序在 基于 POWER 处理器 系统上以可接受的性能运行。
- 603
- 指定 PowerPC 603 RISC 微处理器 方式。 源程序只能包含对 PowerPC 603 RISC 微处理器有效的指令。
- 604
- 指定 PowerPC 604 RISC 微处理器 方式。 源程序只能包含对 PowerPC 604 RISC 微处理器有效的指令。
- ppc970 或 970
- 指定 PowerPC 970 方式。 源程序只能包含对 PowerPC 970 兼容处理器有效的指令。
- A35
- 指定 A35 方式。 源程序只能包含对 A35 有效的指令。
- pwr5
- 指定 POWER5 方式。 源程序只能包含对与 POWER5 兼容的处理器有效的指令。
- pwr5x
- 指定 POWER5+ 方式。 源程序只能包含对与 POWER5+ 兼容的处理器有效的指令。
- pwr6
- 指定POWER6模式。 源程序只能包含对与 POWER6 兼容的处理器有效的指令。
- pwr6e
- 指定 POWER6+ 方式。 源程序只能包含对与 POWER6+ 兼容的处理器有效的指令。
- pwr7
- 指定POWER7模式。 源程序只能包含对与 POWER7 兼容的处理器有效的指令。
- pwr8
- 指定POWER8模式。 源程序只能包含对与 POWER8 兼容的处理器有效的指令。
- pwr9
- 指定POWER9模式。 源程序只能包含对与 POWER9 兼容的处理器有效的指令。
- pwr10
- 指定 Power10 方式。 源程序只能包含对 Power10 兼容处理器有效的指令。
- -M
- 列示对于输入文件中列示的指令有效的汇编方式,或列示对于指定的汇编方式有效的指令。
与 -m 标志配合使用时,汇编程序会列示在通过 -m 标志指定的汇编方式下有效的所有指令。 在命令行上指定的任何其他标志都必须有效,但是会将它们忽略。 还会忽略输入文件。
未与 -m 标志配合使用时,汇编程序会从指定的输入文件中读取行,或从标准输入中读取行(如果未指定任何输入文件)。 在命令行上指定的任何其他标志都必须有效,但是会将它们忽略。 如果输入行以有效指令助记符开始,那么汇编程序会显示所有对于指令有效的汇编方式。 如果行以标签开始,那么在对该行检查有效指令之前会将该标签除去。 会忽略未以有效指令开头的行。 当使用 -M 标志时,只要指令助记符以空格从操作数分离,大多数有效汇编程序源文件就可用作输入文件。
注: 当使用 -M 标志时,汇编程序不会生成对象文件。 - -n 名称
- 指定出现在汇编程序列表的报头中的名称。 缺省情况下,报头包含汇编程序源文件的名称。
- -o ObjectFile
- 将汇编进程的输出写至指定文件而非写至 a.out 文件。
- - s [ ListFile ]
- 指示汇编程序列表中是否包含 POWER 系列 和 PowerPC 的助记符交叉引用。 如果省略此标志,那么不产生助记符的交叉引用。 如果使用此标志,那么如果源包含 PowerPC 助记符,那么汇编程序列表将具有 POWER 系列 助记符,如果源包含 POWER 系列 助记符,那么将具有 PowerPC 助记符。
助记符交叉引用仅限于在POWER 系列和PowerPC 中具有不同助记符,但具有相同操作码、功能和输入操作数格式的指令。
因为 -s 标志用来更改汇编程序列表格式,所以它隐含了 -l 标志。 如果同时使用了这两个选项标志,并且给出了不同的汇编程序列表文件名(由 ListFile变量指定),则使用与 -l标志一起使用的 ListFile变量指定的列表文件名。 如果没有用 -l 或 -s 标志指定汇编程序列表文件名称,那么通过用 .lst 扩展名替换源文件名称的后缀扩展名来产生一个缺省汇编程序列表文件名称。
- -u
- 接受将未定义符号作为一个 extern,这样就不会显示错误消息。 否则将未定义符号标志为错误消息。
- -W
- 关闭所有警告消息报告,包括指示警告消息 ( POWER 系列 和 PowerPC 不兼容警告)。
- -w
- 开启警告消息报告,包括报告指导性警告消息 ( POWER 系列 和 PowerPC 不兼容性警告)。注: 如果既未指定 -W 也未指定 -w ,那么会报告指示警告,但会禁止其他警告。
- - x [ XCrossFile ]
- 生成交叉引用输出。 如果不指定文件名称,那么通过用 .xref 扩展名替换源文件名称的后缀扩展名来产生一个缺省名称。 按照约定,后缀是 .s。 例如:
sourcefile.xyz产生一个缺省名称,即:sourcefile.xref注意:使用 -x标志时,汇编程序不会生成对象文件。 - -E
- 指定是由于新的 v2.00 语法 (
-Eon) 而报告错误,还是忽略这些错误 (-Eoff)。 缺省情况下,将忽略 v2.00 错误。 - -p
- 指定是否使用新 v2.00 分支预测(
-pon),或者 v2.00 以前的分支预测((-poff)。 缺省情况下,使用 v2.00 以前版本的分支预测。 - -一
- 指定要编码的分支预测后缀。 缺省情况下,没有设置该选项。 如果指定了 -p 选项,那么会忽略该选项。
- -v
- 显示该命令的版本号。
- 文件
- 指定源文件。 如果未指定文件,那么从标准输入获取源代码。
环境变量
- OBJECT_MODE
- 汇编程序考虑 OBJECT_MODE 环境变量的设置。 如果不使用 -a32 或 -a64,那么在环境中检查此变量。 如果变量的值不是以下表中列出的值,那么将生成一条错误消息且汇编程序以非零返回码退出。 对应有效设置的默示行为如下:
- OBJECT_MODE
- 汇编程序考虑 OBJECT_MODE 环境变量的设置。 如果不使用 -a32 或 -a64,那么在环境中检查此变量。 如果变量的值不是以下表中列出的值,那么将生成一条错误消息且汇编程序以非零返回码退出。 对应有效设置的默示行为如下:
- 对象模式 = 32
- 产生 32 位目标代码。 缺省机器设置是 com。
- 对象模式 = 64
- 产生 64 位目标代码(XCOFF64 文件)。 缺省机器设置 ppc64。
- 对象模式 = 32_64
- 无效。
- OBJECT_MODE = anything else
- 无效。
示例
- 要生成名为 file.lst 的列表文件和名为 file.o 的对象文件,请输入:
as -l -o file.o file.s - 要生成将在 601 处理器上运行的名为 file.o 的对象文件,并在名为 file.lst的汇编程序列表文件中生成 POWER 系列 和 PowerPC 助记符的交叉引用,请输入:
as -s -m 601 -o file.o file.s - 要使用缺省汇编方式生成名为 file.o 的目标文件以及一个不具有助记符交叉引用的名为 xxx.lst 的汇编程序列表文件,请输入:
as -lxxx.lst -o file.o file.s
文件
- /usr/ccs/bin/as
- 包含 as 命令
- a.out
- 缺省输出文件。