as コマンド

目的

ソース・ファイルをアセンブルします。

構文

as [ -a Mode ] [ -o ObjectFile ] [ -n Name ] [ -u ] [ -l [ ListFile ] ] [ -W | -w ] [ -x [ XCrossFile ] ] [ -s [ ListFile ]] [ -m ModeName ][-M][-Eoff|on ] [ -p off|on ] [ -i ] [ -v ] [ File ]

説明

as コマンドは、指定された File (規則により、このファイルは接尾部 .s で終わります) を読み取ってアセンブルします。 File を指定しなければ、as コマンドは標準入力を読み取ってアセンブルします。 デフォルトでは、このコマンドは出力を a.out という名前のファイルに格納します。 出力は XCOFF ファイル・フォーマットで格納されます。

as コマンドのフラグはすべてオプションです。

フラグ

-a Mode
as コマンドの動作モードを指定します。 デフォルトでは、as コマンドは 32 ビット・モードで動作しますが、明示的にモードを設定することもできます。そのためには、32 ビット・モードの場合は -a32 フラグ、そして 64 ビット・モードの場合は -a64 フラグを使います。
-l [ListFile]
アセンブラー・リストを生成します。 ファイル名を指定しなければ、ソース・ファイル名の接尾部拡張子を .lst で置き換えることにより、デフォルト名が作られます。 規則により、ソース・ファイルの接尾部は .s です。 例:
sourcefile.xyz
この場合、デフォルト名は次のようになります。
sourcefile.lst
ソース・コードが標準入力からのものであり、アセンブラー・リスト・ファイル名を指定しないで -l フラグを使用した場合は、リスト・ファイル名は a.lst になります。
-m ModeName
アセンブリー・モードを指定します。 このフラグの優先順位は、.machine 疑似命令より低いのです。

このフラグを使用せず、ソース・プログラム内に .machine 疑似命令が 1 つもない場合は、デフォルトのアセンブリー・モードが使われます。 デフォルトのアセンブリー・モードには、ターゲット環境として POWER® family/PowerPC® の 共通部分がありますが、すべての POWER family/PowerPC 非互換性エラー (POWER family/PowerPC 共通 部分外での命令、および無効形式エラーを含む) は、命令警告として処理されます。

無効なアセンブリー・モードを指定し、ソース・プログラム内に .machine 疑似命令が 1 つもない場合は、エラーが報告され、デフォルトのアセンブリー・モードが、アセンブラーのパス 1 における命令の妥当性検査に使われます。

-m フラグを使用するとき、ModeName 変数には次のいずれかの値を指定できます。
""
デフォルトのアセンブリー・モードを明示的に指定します。このモードには、ターゲット環境として POWER family/PowerPC の共通部分がありますが、POWER family/PowerPC 共通部分以外の命令および無効なフォーマット・エラーは、命令に関する警告として扱われます。-m と null 文字列引数 (2 つの二重引用符) の間には、スペースが 1 つ必要です。
com
POWER family/PowerPC 共通モードを指定します。ソース・プログラムには、POWER familyPowerPC の両方に共通の命令しか入れることができません。その他の命令はすべてエラーとなります。無効なフォーマットの命令はエラーとなり、アセンブリー・プロセスは終了し、オブジェクト・コードは生成されません。
注: 特定の POWER family 命令は、PowerPC 601 RISC マイクロプロセッサー に よってサポートされていますが、PowerPC アーキテクチャーには準拠して いません。com アセンブリー・モードを使用しているときは、この種の命令はエラーの原因になります。
any
無差別モードを指定します。 アセンブラーは、アーキテクチャーに関係なく、認識されるすべての命令についてオブジェクト・コードを生成します。 このモードは、主として、オペレーティング・システムの開発のため、およびテストやデバッグのために使われます。
注: any アセンブリー・モードを使っているときは、POWER family および PowerPC の非互換性エラーはすべて無視され、警告も生成されません。
ppc
PowerPC64 ビット・モードを指定します。 ソース・プログラムには、PowerPC 用の命令しか入れることができません。その他の命令はすべてエラーとなります。
注:
  1. PowerPC のオプション命令は、どんな PowerPC プロセッサーでもインプリメントされるわけではなく、ppc モードには属しません。ppc アセンブリー・モードを使ってアセンブルされるソース・プログラム内にこの種の命令があると、エラーが発生します。
  2. 特定の命令は、PowerPC アーキテクチャーに準拠していますが、PowerPC 601 RISC マイクロプロセッサー ではサポートされていません。
ppc64
PowerPC64 ビット・モードを指定します。 ソース・プログラムに、64 ビットの PowerPC 命令を入れることができます。
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 命令は PowerPC 601 RISC マイクロプロセッサーでサポートされていません。

重要: PowerPC 601 RISC マイクロプロセッサーPOWER Architecture をインプリメントし、さらに PowerPC アーキテクチャーに含まれていない一部の POWER family命令をインプリメントします。このため、PowerPC プロセッサー・ベースのシステムで、既存の POWER アプリケーションを許容できるパフォーマンスで実行することができます。

PowerPC 601 RISC マイクロプロセッサー は、POWER プロセッサー・ベースのプラットフォーム を インプリメントしますが、一部の POWER family 命令には、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 互換プロセッサーについて有効な命令しか入れることができません。
-M
入力ファイルに記載された命令に対して有効なアセンブリー・モード、または指定されたアセンブリー・モードに対して有効な命令リストを表示します。

アセンブラーは -m フラグを付けて使用すると、-m フラグで指定したアセンブリー・モードで有効なすべての命令をリストします。 このコマンド・ラインで指定される他のフラグはすべて有効でなければなりませんが、無視されます。 入力ファイルも無視されます。

アセンブラーは -m フラグを付けないで使用すると、指定された入力ファイルから行を読み取るか、または、入力ファイルが指定されていない場合は標準入力から行を読み取ります。このコマンド・ラインで指定される他のフラグはすべて有効でなければなりませんが、無視されます。 入力行が有効な命令ニーモニックで始まる場合、アセンブラーは命令が有効であるすべてのアセンブリー・モードを表示します。行がラベルで始まる場合は、有効な命令かどうか行をチェックする前に、そのラベルが除去されます。 有効な命令で始まらない行は無視されます。-M フラグを使用すると、命令のニーモニックが空白文字によってオペランドから分離されていれば、有効なアセンブラー・ソース・ファイルのほとんどは入力ファイルとして使用できます。

注: -M フラグを使用すると、アセンブラーはオブジェクト・ファイルを生成しません。
-n Name
アセンブラー・リストのヘッダーに表示される名前を指定します。 デフォルトでは、ヘッダーにはアセンブラー・ソース・ファイルの名前が入ります。
-o ObjectFile
アセンブリー・プロセスの出力を、a.out ファイルではなく指定されたファイルに書き込みます。
-s[ListFile]
アセンブラー・リストに、POWER family および PowerPC 用のニーモニック相互参照が含まれるかどうかを指定します。このフラグを省略すると、ニーモニック相互参照は作成されません。 このフラグを使用した場合、ソースに PowerPC ニーモニックが含まれていれば、アセンブラー・リストには POWER family ニーモニックが含まれ、ソースに POWER family ニーモニックが含まれていれば、アセンブラー・リストには PowerPC ニーモニックが含まれます。

ニーモニック相互参照の対象となるのは、POWER family および PowerPC 内に異なるニーモニックを持ち、同じ op コード、関数、および入力オペランド・フォーマットを持つ命令だけです。

-s フラグはアセンブラー・リスト・フォーマットを変更するために使用されるものなので、-l フラグの意味も含んでいます。 両方のオプション・フラグを使用し、異なるアセンブラー・リスト・ファイル名 (ListFile 変数) を指定した場合は、-l フラグの ListFile 変数に指定されているリスト・ファイル名が使用されます。 -l フラグまたは -s フラグでアセンブラー・リスト・ファイル名を指定しなかった場合は、ソース・ファイル名の接尾部拡張子を .lst 拡張子で置き換えることにより、デフォルトのアセンブラー・リスト・ファイル名が作られます。

-u
未定義の記号を外部記号として受け入れて、エラー・メッセージが表示されないようにします。 このようにしないと、未定義の記号にはエラー・メッセージのフラグが付けられます。
-W
すべての警告メッセージの報告をオフにします。これには、指示的な警告メッセージが (POWER family および PowerPC の非互換性についての警告も) 含まれます。
-w
警告メッセージの報告をオンにします。これには、指示的な警告メッセージが (POWER family および 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 以前のブランチ予測が使用されます。
-i
ブランチ予測接尾部をエンコードするように指定します。デフォルトでは、このオプションは設定されていません。 このオプションは、-p オプションを指定していると無視されます。
-v
このコマンドのバージョン番号を表示します。
ファイル
ソース・ファイルを指定します。 ファイルを指定しなければ、ソース・コードは標準入力から取られます。

環境変数

OBJECT_MODE
アセンブラーは、OBJECT_MODE 環境変数の設定に従います。 -a32 または -a64 のどちらも使用されていない場合は、この変数に照らして環境が検査されます。 この変数の値が、次の表に示すどの値にも該当しない場合は、エラー・メッセージが生成され、アセンブラーはゼロ以外の戻りコードを返して終了します。 有効な設定のそれぞれに対応する暗黙の動作は次のとおりです。
OBJECT_MODE = 32
32 ビット・オブジェクト・コードを生成します。 デフォルトのマシン設定は com です。
OBJECT_MODE = 64
64 ビット・オブジェクト・コード (XCOFF64 ファイル) を生成します。 デフォルトのマシン設定は ppc64 です。
OBJECT_MODE = 32_64
無効。
OBJECT_MODE=その他すべて
無効。

  1. file.lst という名前のリスト・ファイルと、file.o という名前のオブジェクト・ファイルを生成するには、次のように入力します。
    as -l -o file.o file.s
  2. 601 プロセッサーで実行され、file.lst という名前のアセンブラー・リスト・ファイル内に POWER family および PowerPC ニーモニック用の相互参照を生成する、file.o という名前のオブジェクト・ファイルを生成するには、次のように入力します。
    as -s -m 601 -o file.o file.s
  3. デフォルトのアセンブリー・モードを使って file.o という名前のオブジェクト・ファイルと、ニーモニック相互参照なしの xxx.lst という名前のアセンブラー・リスト・ファイルを生成するには、次のように入力します。
    as -lxxx.lst -o file.o file.s

ファイル

/usr/ccs/bin/as
as コマンドが入っています。
a.out
デフォルトの出力ファイル。