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 ] [ File ]

説明

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

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

フラグ

変更の始め-a Option[:Option]変更の終わり
変更の始めこれは、アセンブラー・オプションを指定します。 以下のオプションが定義されています。
32
これはソース・ファイルを 32 ビット・モードでアセンブルします。 これはデフォルトのモードです。 また、OBJECT_MODE 環境変数を使用しても、このモードを指定できます。
64
これはソース・ファイルを 64 ビット・モードでアセンブルします。 また、OBJECT_MODE 環境変数を使用しても、このモードを指定できます。
align-prefixed-csect=<yes/no>
これは、必要であれば、接頭部付きの命令を含む制御セクション (csect) の配置を少なくとも 64 バイト境界にまで増やすかどうかを指定します。 64 バイトが最小配置であり、その場合は、アセンブルされたプログラムがリンクされるときに接頭部付きの命令が正しく配置されます。 align-prefixed-csect オプションに対して yes を指定すると、必要に応じて、接頭部付きの命令を含む csect の配置が増やされます。 align-prefixed-csect オプションに対して no を指定した場合に、コマンド・ラインで -w フラグが使用されているときは、接頭部付きの命令が、十分には厳密になっていない配置を持つ csect に含まれていると、警告メッセージが表示されます。 詳しくは、 .align pseudo-opを参照してください。
align-prefixed-op=<yes/no>

これは、接頭部付きの命令が 64 バイト境界を超える場合に、命令の前に no-op 命令を付けて接頭部付きの命令を配置するどうかを指定します。 align-prefixed-op オプションに対して yes を指定すると、必要に応じて、接頭部付きの命令が配置されます。 align-prefixed-op オプションに対して no を指定した場合に、コマンド・ラインで -w フラグが使用されているときは、接頭部付きの命令が 64 バイト境界を超える場合に、警告メッセージが表示されます。 詳しくは、 .align pseudo-opを参照してください。

-a パラメーターを使用すれば、複数のオプションを指定できます。 競合するフラグを指定した場合、後続のフラグが先行のフラグをオーバーライドします。 以下の例に示すように、-a パラメーターを使用すれば、複数のオプションをコロン区切りで指定できます。
-a 64:align-prefixed-csect=no
変更の終わり
-l[ListFile]
アセンブラー・リストを生成します。 ファイル名を指定しなければ、ソース・ファイル名の接尾部拡張子を .lst で置き換えることにより、デフォルト名が作られます。 規則により、ソース・ファイルの接尾部は .s です。 次に例を示します。
sourcefile.xyz
この場合、デフォルト名は次のようになります。
sourcefile.lst
ソース・コードが標準入力からのものであり、アセンブラー・リスト・ファイル名を指定しないで -l フラグを使用した場合は、リスト・ファイル名は a.lst になります。
-m ModeName
アセンブリー・モードを指定します。 このフラグの優先順位は、.machine 疑似命令より低いのです。

このフラグを使用せず、ソース・プログラム内に .machine 疑似命令が 1 つもない場合は、デフォルトのアセンブリー・モードが使われます。 デフォルトのアセンブリモードは、'POWER®ファミリー/パワーPC交差点をターゲット環境とするが、すべての 'POWERファミリー/パワーPC非互換エラー('POWERファミリー/パワーPC交差点外の命令や無効なフォームエラーを含む)を命令警告として扱う。

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

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

重要: PowerPC 601 RISC Microprocessor は、 POWER アーキテクチャー と、 PowerPC アーキテクチャーに含まれていない POWER ファミリー のいくつかの命令を実装しています。 これにより、 PowerPC プロセッサー・ベースのシステムで、既存の POWER アプリケーションを許容できるパフォーマンスで実行できます。

PowerPC 601 RISC MicroprocessorPOWER プロセッサー・ベースのプラットフォーム を実装していますが、一部の 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 (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
未定義の記号を外部記号として受け入れて、エラー・メッセージが表示されないようにします。 このようにしないと、未定義の記号にはエラー・メッセージのフラグが付けられます。
-W
指示警告メッセージ ( POWER ファミリー および PowerPC の非互換性警告) を含む、すべての警告メッセージ・レポートをオフにします。
-w
警告メッセージの報告をオンにします。これには、指示警告メッセージ ( POWER ファミリー および PowerPC の非互換性警告) の報告も含まれます。
注: -W (W)-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
このコマンドのバージョン番号を表示します。
File
ソース・ファイルを指定します。 ファイルを指定しなければ、ソース・コードは標準入力から取られます。

環境変数

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.o という名前のオブジェクト・ファイルを作成し、 file.lstという名前のアセンブラー・リスト・ファイルに POWER ファミリー および PowerPC ニーモニックの相互参照を生成するには、次のように入力します。
    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
デフォルトの出力ファイル。