AS(1)

名称
AS - ポータブル GNU アセンブラ

書式
as [-a[cdhlns][=file]] [-D] [--defsym sym=val]
 [-f] [--gstabs] [--gdwarf2] [--help] [-I dir]
 [-J] [-K] [-L]
 [--listing-lhs-width=NUM] [--listing-lhs-width2=NUM]
 [--listing-rhs-width=NUM] [--listing-cont-lines=NUM]
 [--keep-locals] [-o objfile] [-R] [--statistics] [-v]
 [-version] [--version] [-W] [--warn] [--fatal-warnings]
 [-w] [-x] [-Z] [--target-help] [target-options]
 [--|files ...]

ターゲット Alpha オプション:
   [-mcpu]
   [-mdebug | -no-mdebug]
   [-relax] [-g] [-Gsize]
   [-F] [-32addr]

ターゲット ARC オプション:
   [-marc[5|6|7|8]]
   [-EB|-EL]

ターゲット ARM オプション:
   [-mcpu=processor[+extension...]]
   [-march=architecture[+extension...]]
   [-mfpu=floating-point-fromat]
   [-mthumb]
   [-EB|-EL]
   [-mapcs-32|-mapcs-26|-mapcs-float|
    -mapcs-reentrant]
   [-mthumb-interwork] [-moabi] [-k]

ターゲット CRIS オプション:
   [--underscore | --no-underscore]
   [--pic] [-N]
   [--emulation=criself | --emulation=crisaout]

ターゲット D10V オプション:
   [-O]

ターゲット D30V オプション:
   [-O|-n|-N]

ターゲット i386 オプション:
   [--32|--64]

ターゲット i960 オプション:
   [-ACA|-ACA_A|-ACB|-ACC|-AKA|-AKB|
    -AKC|-AMC]
   [-b] [-no-relax]

ターゲット M32R オプション:
   [--m32rx|--[no-]warn-explicit-parallel-conflicts|
   --W[n]p]

ターゲット M680X0 オプション:
   [-l] [-m68000|-m68010|-m68020|...]

ターゲット M68HC11 オプション:
   [-m68hc11|-m68hc12]
   [--force-long-branchs] [--short-branchs]
   [--strict-direct-mode] [--print-insn-syntax]
   [--print-opcodes] [--generate-example]

ターゲット MCORE オプション:
   [-jsri2bsr] [-sifilter] [-relax]
   [-mcpu=[210|340]]

ターゲット MIPS オプション:
   [-nocpp] [-EL] [-EB] [-n] [-O[optimization level]]
   [-g[debug level]] [-G num] [-KPIC] [-call_shared]
   [-non_shared] [-xgot] [--membedded-pic]
   [-mabi=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32]
   [-march=CPU] [-mtune=CPU] [-mips1] [-mips2]
   [-mips3] [-mips4] [-mips5] [-mips32] [-mips64]
   [-construct-floats] [-no-construct-floats]
   [-trap] [-no-break] [-break] [-no-trap]
   [-mfix7000] [-mno-fix7000]
   [-mips16] [-no-mips16]
   [-mips3d] [-no-mips3d]
   [-mdmx] [-no-mdmx]
   [-mdebug] [-no-mdebug]

ターゲット MMIX オプション:
   [--fixed-special-register-names] [--globalize-symbols]
   [--gnu-syntax] [--relax] [--no-predefined-symbols]
   [--no-expand] [--no-merge-gregs] [-x]
   [--linker-allocated-gregs]

ターゲット PDP11 オプション:
   [-mpic|-mno-pic] [-mall] [-mno-extensions]
   [-mextension|-mno-extension]
   [-mcpu] [-mmachine]

ターゲット picoJava オプション:
   [-mb|-me]

ターゲット PowerPC オプション:
   [-mpwrx|-mpwr2|-mpwr|-m601|-mppc|-mppc32|-m603|-m604|
    -m403|-m405|-mppc64|-m620|-mppc64bridge|-mbooke|
    -mbooke32|-mbooke64]
   [-mcom|-many|-maltivec] [-memb]
   [-mregnames|-mno-regnames]
   [-mrelocatable|-mrelocatable-lib]
   [-mlittle|-mlittle-endian|-mbig|-mbig-endian]
   [-msolaris|-mno-solaris]

ターゲット SPARC オプション:
   [-Av6|-Av7|-Av8|-Asparclet|-Asparclite
    -Av8plus|-Av8plusa|-Av9|-Av9a]
   [-xarch=v8plus|-xarch=v8plusa] [-bump]
   [-32|-64]

解説
GNU as とは、実は一連のアセンブラのことです。 もしあるアーキテクチャで GNU アセンブラを使う (もしくは、使った ことがある) ならば、他のアーキテクチャで使う時もかなり似た環境となり ます。それぞれのバージョンは他のバージョンと共通の部分が多くあります。 例えば、オブジェクトファイルフォーマットや ほとんどのアセンブラディレクティブ (疑似命令(pseudo-ops)とも呼ばれます)、アセンブラシンタクスなどです。

as が作られた第一の目的は、GNU C コンパイラ の出力をリンカで使用できるようアセンブルすることです。 確かに、as が、 ネイティブアセンブラがアセンブルできるものはすべて 正しくアセンブルできるようにしようとしてきました。 例外は明確に文書化されています。 このことは、as の用いるシンタクスが、 同一アーキテクチャの他のアセンブラと同じである、 ということを意味するものではありません。 たとえば、680x0 のアセンブラ言語 のシンタクスには互換性のないバージョンが存在することが知られてい ます。

as の起動 1 回ごとに、 ちょうどひとつのソースプログラムだけをアセンブルします。 ソースプログラムはひとつ以上のファイルから構成されます。 (標準入力もファイルひとつとみなします。)

as に与えるコマンドラインには、 0 個以上の入力ファイル名が含まれます。 入力ファイルは (左のファイル名から開始して右へ向って) 読み込まれます。 特別な意味が無いコマンドライン引数は (どんな位置であっても) 入力ファイル名であるとみなされます。

もし as にファイル名が指定されなければ、ひとつの入力ファイルが as の標準入力 (ふつうは端末) から読み出されます。 ctl-D をタイプすることで、これ以上アセンブルするプログラムが存在しないこと を as に通知します。

コマンドライン上で明示的に標準入力を指定する必要のある時は、 -- を使ってください。

ソースが空の場合、as は小さな空のオブジェクトファイルを作成します。

as は、警告およびエラーメッセージを標準エラー出力 (通常は端末) へ出力します。 as が コンパイラによって自動起動された場合は、この限りではありません。 警告とは、欠陥のあるプログラムのアセンブルを続行するために as が仮定した内容を報告したものです。 エラーは、アセンブルを続行できない重大な問題を表します。

as を GNU C コンパイラ (バージョン 2) から起動している場合、 -Wa オプションを使用してアセンブラへの引数を渡せます。 それぞれのアセンブラ引数 (と -Wa) は、コンマで区切られます。 例えば次のようになります。

        gcc -c -g -O -Wa,-alh,-L file.c
これは 2 個のオプションをアセンブラに渡します: すなわち -alh (高級言語とアセンブラソースのリストを標準出力へ出力) と -L (ローカルシンボルをシンボルテーブルに残す) です。

通常はこの -Wa の機構を使用する必要はありません。 なぜならば、コンパイラがアセンブラに対し、 多くのコンパイラコマンドラインオプションを渡すからです。 (GNU コンパイラドライバを -v オプション付きで起動することで、 アセンブラを含む各コンパイルのパスに対してどのようなオプションを渡すのか、 正確に調べることができます。)

オプション

-a[cdhlmns]
    リスト出力を行います。 次の種類があります。

    -ac 偽の条件を削除します

    -ad デバッグ用ディレクティブを削除します

    -ah 高級言語ソースを含みます

    -al アセンブリを含みます

    -am マクロ拡張を含みます

    -an フォーム処理 (forms processing) を削除します

    -as シンボルを含みます

    =file
        リスト出力を行うファイル名を設定します。

    これらのオプションを組み合わせ可能です。 例えば、-aln はアセンブリリストをフォーム処理無しで出力します。 =file オプションは、使用された場合、 最後のサブオプションである必要があります。 デフォルトのサブオプションは -a だけ指定すると -ahls になります。

-D  無視されます。 このオプションは、他のアセンブラ呼び出しとの互換のために 受け付けられるものです。

--defsym sym=value
    入力ファイルをアセンブルする前に、 シンボル sym を value であると定義します。 value は定数の整数である必要があります。 C と同様、先行する 0x は 16 進数値を示し、 先行する 0 は 8 進数値を示します。

-f  ``高速 (fast)''オプションです--- プリプロセシングを行ないません (ソースはコンパイラの出力したものとみなします)。

--gstabs
    各アセンブリの行に対し、スタブデバッグ情報 (stabs debugging information) を生成します。 デバッガが扱える場合、アセンブリコードのデバッグに役立つかもしれません。

--gdwarf2
    各アセンブリの行に対し、DAWRF2 デバッグ情報を生成します。 デバッガが扱える場合、アセンブリコードのデバッグに役立つかもしれません。 注 - 本オプションはすべてのターゲットでサポートされているわけではなく、 一部のみでサポートされています。

--help
    コマンドラインオプションのまとめを表示し、終了します。

--target-help
    ターゲット固有のすべてのオプションのまとめを表示し、終了します。

-I dir
    dir を ".include" ディレクティブの検索リストに追加します。

-J  符号付き整数の桁溢れを警告しません。

-K  本オプションは受け付けられますが、TARGET ファミリでは効果がありません。

-L
--keep-locals
    ローカルシンボルを (シンボル表) に保存します。 伝統的な a.out システムでは、これらは L で開始しますが、 別のシステムでは別のローカルラベルプレフィックスを持ちます。

--listing-lhs-width=number
    アセンブラリストにおける出力データコラムの最大幅を number 語に設定します。

--listing-lhs-width2=number
    アセンブラリストにおける継続行の出力データコラムの最大幅を number 語に設定します。

--listing-rhs-width=number
    リストで表示される入力ソース行の最大幅を number バイトに設定します。

--listing-cont-lines=number
    リスト中で入力 1 行に対応する表示行の最大を number + 1 行に設定します。

-o objfile
    as の出力オブジェクトファイル名を objfile に設定します。

-R  データセクションをテキストセクションへ混入させます。

--statistics
    アセンブルに使用した最大空間 (バイト数) と合計時間 (秒数) を表示します。

--strip-local-absolute
    ローカルの絶対シンボルを出力先のシンボル方から削除します。

-v
-version
    as のバージョンを表示します。

--version
    as のバージョンを表示し、終了します。

-W
--no-warn
    警告メッセージの出力を抑制します。

--fatal-warnings
    警告を、エラーとして扱います。

--warn
    警告を抑制しませんし、エラーとしても扱いません。

-w  無視されます。

-x  無視されます。

-Z  エラーの後でもオブジェクトファイルを生成します。

-- | files ...
    アセンブル対象のソースファイルまたは標準入力です。

次のオプションは、ARC プロセッサ用に設定された場合に使用可能です。

-marc[5|6|7|8]
    This option selects the core processor variant.

-EB | -EL
    Select either big-endian (-EB) or little-endian (-EL) output.

次のオプションは、 ARM プロセッサファミリ用に設定された場合に使用可能です。

-mcpu=processor[+extension...]
    どの ARM プロセッサがターゲットであるかを指定します。

-march=architecture[+extension...]
    どの ARM アーキテクチャがターゲットであるかを指定します。

-mfpu=floating-point-format
    どの浮動小数点数アーキテクチャがターゲットであるかを指定します。

-mthumb
    Thumb 命令のみのデコードを有効にします。

-mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant | -moabi
    どのプロシジャ呼び出し規約を使用するのかを指定します。

-EB | -EL
    ビッグエンディアン (-EB) 出力かリトルエンディアン出力か (-EL) を選択します。

-mthumb-interwork
    Thumb と ARM が相互動作することを考慮に入れてコード生成 されたことを指定します。

-k  PIC コードが生成されたことを指定します。

CRIS 固有のオプションの記述は info ページを参照してください。

次のオプションは、 D10V プロセッサ用に設定された場合に使用可能です。

-O  命令を並列化して出力を最適化します。

次のオプションは、 D30V プロセッサ用に設定された場合に使用可能です。

-O  命令を並列化して出力を最適化します。

-n  nop が出力されたときに警告します。

-N  32 ビット掛け算の後に nop が出力されたときに警告します。

次のオプションは、 80960 プロセッサ用に設定された場合に使用可能です。

-ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC
    どの 960 アーキテクチャがターゲットであるかを指定します。

-b  実際に行われた分岐に関する統計情報を収集するコードを追加します。

-no-relax
    ロングディスプレースメントの「比較-分岐」という命令列に対して 変更を加えません。 場合によってはエラーが発生します。

次のオプションは、 Mitsubishi M32R シリーズ用に設定された場合に使用可能です。

--m32rx
    M32R ファミリのどのプロセッサがターゲットであるかを指定します。 デフォルトは、通常、M32R ですが、 本オプションを指定すると M32RX になります。

--warn-explicit-parallel-conflicts or --Wp
    疑わしい parallel constructs に出会った場合、警告します。

--no-warn-explicit-parallel-conflicts or --Wnp
    疑わしい parallel constructs に出会った場合でも、警告しません。

次のオプションは、 Motorola 68000 シリーズ用に設定された場合に使用可能です。

-l  2 ワードではなく、1 ワードの短い参照を未定義シンボルに適用します。

-m68000 | -m68008 | -m68010 | -m68020 | -m68030
| -m68040 | -m68060 | -m68302 | -m68331 | -m68332
| -m68333 | -m68340 | -mcpu32 | -m5200
    68000 ファミリのどのプロセッサがターゲットかを指定します デフォルトは 68020 ですが、設定時に変更可能です。

-m68881 | -m68882 | -mno-68881 | -mno-68882
    ターゲットは浮動小数点数コプロセッサを持っています (持っていません)。 デフォルトでは、68020, 68030, cpu32 用のコプロセッサを仮定します。 素の 68000 は 68881 と互換ではありませんが、 コプロセッサ命令をメインプロセッサでのエミュレーション可能ですので、 両者の組み合わせも指定可能です。

-m68851 | -mno-68851
    ターゲットマシンはメモリ管理ユニットコプロセッサを持っています (持っていません)。 デフォルトでは、68020 以上用の MMU を仮定します。

PDP-11 機種依存機能オプションについての詳細は、 @ref{PDP-11-Options} を参照してください。

-mpic | -mno-pic
    位置独立 (または位置依存) コードを生成します。 デフォルトは -mpic です。

-mall
-mall-extensions
    すべての命令セット拡張を有効にします。 これがデフォルトです。

-mno-extensions
    すべての命令セット拡張を無効にします。

-mextension | -mno-extension
    特定の命令セット拡張を有効 (無効) にします。

-mcpu
    特定の CPU でサポートされる命令セット拡張を有効にし、 他のすべての拡張を無効にします。

-mmachine
    特定のマシンモデルでサポートされる命令セット拡張を有効にし、 他のすべての拡張を無効にします。

次のオプションは、 picoJava プロセッサ用に設定された場合に使用可能です。

-mb ``ビッグエンディアン'' フォーマット出力を行います。

-ml ``リトルエンディアン'' フォーマット出力を行います。

次のオプションは、 Motorola 68HC11 シリーズまたは 68HC12 シリーズ用に 設定された場合に使用可能です。

-m68hc11 | -m68hc12
    どのプロセッサがターゲットであるかを指定します。 デフォルトは、アセンブラを構築するときの設定オプションで定義されています。

--force-long-branchs
    相対分岐が絶対分岐に変換されます。 条件分岐、無条件分岐、サブルーチンへの分岐が対象です。

-S | --short-branchs
    オフセットが範囲外の場合、 相対分岐を絶対分岐に変換しません。

--strict-direct-mode
    命令が直接アドレッシングモードをサポートしない場合、 直接アドレッシングモードを拡張アドレッシングモードに変換しません。

--print-insn-syntax
    エラーの場合、命令の文法を表示します。

--print-opcodes
    print the list of instructions with syntax and then exit. 命令一覧を文法と共に表示し、終了します。

--generate-example
    命令となりうる各箇所に対して命令の例を 1 個表示し、終了します。 本オプションは as のテストにのみ有用です。

次のオプションは、as が SPARC シリーズ用に設定された場合に使用可能です。

-Av6 | -Av7 | -Av8 | -Asparclet | -Asparclite
-Av8plus | -Av8plusa | -Av9 | -Av9a
    SPARC アーキテクチャの種類を明示的に選択します。

    -Av8plus と -Av8plusa は 32 ビット環境を選択します。 -Av9 と -Av9a は 64 ビット環境を選択します。

    -Av8plusa と -Av9a は SPARC V9 命令セットと UltraSPARC 拡張を有効にします。

-xarch=v8plus | -xarch=v8plusa
    Solaris v9 アセンブラとの互換性用です。 これらのオプションは、それぞれ、 -Av8plus と -Av8plusa と等価です。

-bump
    アセンブラが別のアーキテクチャに変わったときに警告します。

次のオプションは、as が MIPS シリーズ用に設定された場合に使用可能です。

-G num
    暗黙的に "gp" レジスタを介して参照されるオブジェクトの 最大サイズを設定します。 ECOFF フォーマットを使用するターゲット、 例えば Ultrix を実行する DECstation でのみ、受け付けられます。 デフォルト値は 8 です。

-EB ``ビッグエンディアン'' フォーマット出力を行います。

-EL ``リトルエンディアン'' フォーマット出力を行います。

-mips1
-mips2
-mips3
-mips4
-mips5
-mips32
-mips64
    特定の MIPS 命令セットアーキテクチャ (Instruction Set Architecture) レベル用のコードを生成します。 -mips1 は -march=r3000 の別名、 -mips2 は -march=r6000 の別名、 -mips3 は -march=r4000 の別名、 -mips4 は -march=84000 の別名です。 -mips5, -mips32, -mips64 は、 それぞれ、一般の MIPS V, MIPS32, MIPS64 ISA に対応します。

-march=CPU
    MIPS CPU 固有のコードを生成します。

-mtune=cpu
    MIPS CPU 固有のスケジュールとチューニングを行います。

-mfix7000
-mno-fix7000
    mfhi か mflo の命令の後続 2 命令に 宛先レジスタからの読み出しが存在する場合、NOP を挿入します。

-mdebug
-no-mdebug
    stabs スタイルのデバッグ情報が、 標準の ELF .stabs セクションではなく、 ECOFF スタイルの .mdebug セクションへ行くようにします。

-mgp32
-mfp32
    レジスタサイズは、通常、ISA と ABI で決まりますが、 これらのフラグはある種のレジスタが常に 32 ビット幅で使われるように強制します。 -mgp32 は汎用レジスタの大きさを、 -mfp32 は浮動小数点数レジスタの大きさを、制御します。

-mips16
-no-mips16
    MIPS 16 プロセッサ用のコードを生成します。 これは、アセンブリファイルの先頭に ".set mips16" を挿入することと等価です。 -no-mips16 は、本オプションをオフにします。

-mips3d
-no-mips3d
    MIPS-3D Application Specific Extension 用のコードを生成します。 アセンブラに対し、MIPS-3D 命令を受け付けるよう指示します。 -no-mips3d は、このオプションをオフにします。

-mdmx
-no-mdmx
    MDMX Application Specific Extension 用のコードを生成します。 アセンブラに対し、MDMX 命令を受け付けるよう指示します。 -no-mdmx は、このオプションをオフにします。

--construct-floats
--no-construct-floats
    --no-construct-floats オプションは、 倍幅の浮動小数点数定数の構築を無効化します。 倍幅の浮動小数点数定数の構築とは、 値の半分を 2 個、 倍幅レジスタを構築する 2 個の単幅浮動小数点数レジスタへロードすること で行われるものです。 デフォルトでは、--construct-floats が選択されており、 これらの浮動小数点数定数の構築を許しています。

--emulation=name
    as が他のターゲット用に設定されたかのようにエミュレートするよう、 as に指示します。 これはすべての面にわたり、 出力フォーマット (s-1ELF と ECOFF の内からのみ選択)、 デバッグ情報を生成したりシンボル表情報を格納する擬似オプコードの扱い、 デフォルトのエンディアンも含まれます。 利用可能な設定名は次の通りです: mipsecoff, mipself, mipslecoff, mipsbecoff, mipslelf, mipsbelf。 最初の 2 個は、 アセンブラが設定された第一ターゲットにおけるデフォルトから、 エンディアンを変えません。 他のものは、デフォルトをリトルエンディアンまたはビッグエンディアンにします。 これは、名前中の b または l で示されています。 いかなる場合でも、-EB または -EL は、 エンディアンの選択に優先します。

    本オプションが現在サポートされているのは、as の第一のターゲットが MIPS ELF か MIPS ECOFF に設定された場合のみです。 さらに、両方のフォーマットのサポートが必要な場合、 --enable-targets=... で設定時に指定される 第一のターゲットおよび他のターゲットには、 他のフォーマットのサポートを含む必要があります。 例えば、Irix 5 の設定は両者のサポートを含みます。

    最終的には、本オプションはより多くの設定をサポートし、 アセンブラの動作に対してより細粒度の制御を行い、 より多くのプロセッサでサポートされることでしょう。

-nocpp
    as は本オプションを無視します。 ネイティブツールとの互換性とのために受け付けられます。

--trap
--no-trap
--break
--no-break
    掛け算による溢れと 0 除算をどのように扱うかを制御します。 --trap または --no-break (同義語です) はトラップ例外を発生します (命令セットアーキテクチャレベル 2 以上でのみ動作します)。 --break または --no-trap (同義語です。デフォルト) はブレイク例外を発生します。

-n  本オプションを使用すると、 マクロ由来の nop を生成するたびに as は警告を発生します。

次のオプションは、as が MCore プロセッサ用に設定された場合に使用可能です。

-jsri2bsr
-nojsri2bsr
    JSRI を BSR へ変換することを、有効または無効にします。 デフォルトでは、有効です。 コマンドラインオプション -nojsri2bsr を使用して、これを無効にできます。

-sifilter
-nosifilter
    シリコンフィルタの動作を、有効または無効にします。 デフォルトでは、無効です。 コマンドラインオプション -sifilter を使用して、 デフォルトに優先させることができます。

-relax
    長いディスプレースメント用の jump 命令を変更します。

-mcpu=[210|340]
    ターゲットハードウェアの CPU タイプを選択します。 これにより、どの命令をアセンブルするかを制御します。

-EB ビッグエンディアンのターゲット用にアセンブルします。

-EL リトルエンディアンのターゲット用にアセンブルします。

MMIX 固有のオプションの記述は info ページを参照してください。

関連項目
gcc(1) と ld(1) および binutils と ld の Info エントリ。

COPYRIGHT
Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".