マニュアルページセク ション 1: ユーザーコマンド

印刷ビューの終了

更新: 2014 年 7 月
 
 

as (1)

名前

as - アセンブラ

形式

SPARC
as [ -hwcap={1|0} ] [ -L
 ] [ -m ] [ -m32 ] [ -m64
 ]
     [ -n ] [ -o outfile ] [ 
-ul ] [ -P ]
     [ -Dname ] [ -D
name=def ] [ -I
path ]
     [ -Uname....  ] [ -Q[y|n] ] [ 
-s ]
     [ -S[a|b|c|l|A|B|C|L]] [ -V ] [ 
-xarch=v ]
     [ -xF ] [ -Y[m|c],path ] [ 
-YI,path ] filename...

x86
as [ -a32 ] [ -m ] [ 
-m32 ] [ -m64 ] [ -n ]
     [ -H ] [ -nH ] [ -o 
outfile ]
     [ -P ] [ -Dname ] [ 
-Dname=def ] [ 
-Ipath ]
     [ -Uname....  ]
     [ -KPIC ] [ -Q[y|n] ] [ -s ] [ 
-S[a|b|c|l|A|B|C|L]] [ -V ]
     [ -xchip=v ] [ -xmodel
=[a] ]
     [ -Y[m|d],path ] [ -YI
,path ] filename...

説明

as コマンドは、アセンブリ言語ソースファイルからオブジェクトファイルを生成します。

オプション

このセクションは、3 つに分かれています:

  • 共通オプション (SPARC と x86 の両方に共通のオプション)

  • SPARC のオプション

  • x86 のオプション

共通オプション

–Dname
–Dname=def

–P オプションが有効な場合、これらのオプションは、as コマンドでは解釈されずに cpp(1) プリプロセッサに渡されます。そうでない場合は無視されます。

–I path

–P オプションが有効な場合、このオプションは、as コマンドでは解釈されずに cpp(1) プリプロセッサに渡されます。そうでない場合は無視されます。

–i

as に対し、プリプロセッサからの行番号情報を無視するよう指示します。

–m

アセンブラへの入力時に m4(1) マクロプロセッサを実行します。

–m32|–m64

32 ビットまたは 64 ビット ELF 形式のオブジェクトコードを生成します。

–n

アセンブル実行時にすべての警告を抑制します。

–o outfile

アセンブリの出力を outfile に格納します。デフォルトでは、出力ファイル名は、入力ファイル名から .s 接尾辞 (もしあれば) を削除して、.o 接尾辞を付加することによって作成されます。

–P

アセンブル中のファイルに対して、C プリプロセッサ cpp(1) を実行します。このプリプロセッサは、入力ファイルを連結したものではなく、各入力ファイルに対して実行されます。このプリプロセッサによる出力結果はアセンブラに渡されます。

–Q[y|n]

y オプションを指定した場合、出力オブジェクトファイルの注釈セクションに「アセンブラバージョン」情報が生成されます。n オプションを指定すると、情報は抑制されます。

–S[a|b| c|l|A|B| C|L]

発行されたコードの逆アセンブリを標準出力に送ります。次の各文字を –S オプションに付けると、次の処理が実行されます。

a

アドレスによる逆アセンブル

b

.bof による逆アセンブル

c

注釈による逆アセンブル

l

行番号による逆アセンブル。

大文字を指定すると、対応するオプションが無効になります。デフォルトは –Sc です。

–s

すべてのスタブを .stabs セクションに置きます。デフォルトでは、スタブは、静的リンカー ld(1) によって最終実行中に削除される stabs.excl セクションに置かれます。–s オプションを使用すると、.stab セクションが静的リンカーによって削除されないため、スタブは最終実行可能プログラム中に残ります。

–Uname

–P オプションが有効な場合、このオプションは、as コマンドでは解釈されずに cpp(1) プリプロセッサに渡されます。そうでない場合は無視されます。

–Ym,path

使用する m4 のバージョンへのパスを指定します。

–YI,path

#include ヘッダーファイルを検索するパスを示します。

SPARC のオプション

–hwcap={1|0}

ハードウェア機能セクションの生成を有効 (1) にするか、抑制 (0) します。デフォルトでは、このセクションを生成します。

–L

領域を節約するために通常は破棄される一時ラベルを含む、すべてのシンボルを ELF シンボルテーブルに保存します。

–ul

すべての未定義シンボルをローカルとして扱います。

–Yc,path

使用する cpp のバージョンへのパスを指定します。

–xarch=sparc

SPARC-V9 アーキテクチャーで定義されている命令をアセンブラが受け入れることができるようにします。生成されるオブジェクトコードは、–m32 では ELF32 形式、–m64 では ELF64 形式になります。これは、Oracle Solaris V8 システム (V8 プロセッサを持つマシン) では実行されません。これは、Oracle Solaris V8+ システムで実行されます。

–xarch=sparcvis

アセンブラが、SPARC-V9 アーキテクチャーで定義されている命令、および Visual Instruction Set (VIS) バージョン 1.0 の命令を受け入れることを可能にします。生成されるオブジェクトコードは、–m32 では V8+ ELF32 形式、–m64 では ELF64 形式になります。これは、V8 プロセッサを使用する Oracle Solaris システムでは実行されません。これは、V8+ プロセッサを使用する Oracle Solaris システムで実行されます。

–xarch=sparcvis2

アセンブラが、UltraSPARC-III 拡張機能を使用して、SPARC-V9 アーキテクチャーで定義された命令と、Visual Instruction Set (VIS) バージョン 2.0 の命令を受け入れることを可能にします。生成されるオブジェクトコードは、–m32 では V8+ ELF32 形式、–m64 では ELF64 形式になります。

–xarch=sparcvis3

SPARC-V9 ISA の SPARC VIS バージョン 3 (SPARC-V9 命令セットの命令) に加え、Visual Instruction Set (VIS) バージョン 1.0 を含む UltraSPARC 拡張機能、Visual Instruction Set (VIS) バージョン 2.0 を含む UltraSPARC-III 拡張機能、積和演算命令、および Visual Instruction Set (VIS) バージョン 3.0 で定義されている命令を受け入れます。

–xarch=sparcfmaf

SPARC-V9 ISA の sparcfmaf バージョンに加え、Visual Instruction Set (VIS) バージョン 1.0 を含む UltraSPARC 拡張機能、Visual Instruction Set (VIS) バージョン 2.0 を含む UltraSPARC-III 拡張機能、および浮動小数点積和演算用 SPARC64 VI 拡張機能で定義されている命令を受け入れます。

–xarch=sparcima

SPARC-V9 ISA の sparcima バージョン (SPARC-V9 命令セットの命令) に加え、Visual Instruction Set (VIS) バージョン 1.0 を含む UltraSPARC 拡張機能、Visual Instruction Set (VIS) バージョン 2.0 を含む UltraSPARC-III 拡張機能、浮動小数点積和演算用 SPARC64 VI 拡張機能、および整数積和演算用 SPARC64 VII 拡張機能で定義されている命令を受け入れます。

–xarch=sparc4

SPARC-V9 ISA の sparc4 バージョンで定義された命令 (SPARC-V9 命令セットの命令)、VIS 1.0 を含む拡張機能で定義された命令、VIS 2.0 を含む UltraSPARC-III 拡張機能で定義された命令、浮動小数点積和演算命令、VIS 3.0、および SPARC4 命令を受け入れます。

–xarch=sparcace

SPARC-V9 ISA の sparcace バージョン (SPARC-V9 命令セットの命令) に加え、Visual Instruction Set (VIS) バージョン 1.0 を含む UltraSPARC 拡張機能、Visual Instruction Set (VIS) バージョン 2.0 を含む UltraSPARC-III 拡張機能、浮動小数点積和演算用 SPARC64 VI 拡張機能、整数積和演算用 SPARC64 VII 拡張機能で定義されている命令、および SPARCACE 命令を受け入れます。

–xarch=sparcaceplus

SPARC-V9 ISA の sparcaceplus バージョン (SPARC-V9 命令セットの命令) に加え、Visual Instruction Set (VIS) バージョン 1.0 を含む UltraSPARC 拡張機能、Visual Instruction Set (VIS) バージョン 2.0 を含む UltraSPARC-III 拡張機能、浮動小数点積和演算用 SPARC64 VI 拡張機能、整数積和演算用 SPARC64 VII 拡張機能で定義されている命令、SPARCACE 命令、および SPARCACEPLUS 命令を受け入れます。

–xarch=v9

–m64 –xarch=sparc と同等

–xarch=v9a

–m64 –xarch=sparcvis と同等

–xarch=v9b

–m64 –xarch=sparcvis2 と同等

–xF

Oracle Solaris Studio パフォーマンスアナライザで使用される追加情報を生成します。入力ファイルにスタブ (デバッグ指令) が含まれない場合、アセンブラは Oracle Solaris Studio アナライザに必要なデフォルトスタブを生成します。Oracle Sun Studio マニュアルページの dbx(1) も参照してください。

x86 のオプション

–a32

64 ビットモードでの 32 ビットアドレスを許可します。

–H

ハードウェア機能セクションを生成します。(これはデフォルトです。)

–nH

ハードウェア機能セクションの生成を抑制します。

–KPIC

絶対再配置を使用するアドレス参照を検査して、警告を発行します。

–xchip=v

複数のエンコードから選択可能な場合、指定されたチップに適したものを選択します。特に、適切な no-op バイトシーケンスを使用してコード配置パディングを実行し、指定されたチップ用に定義されていない命令が使用される場合は警告します。

アセンブラは、次の認識される –xchip 値の命令セットを受け入れます。

generic

汎用 x86 命令セット。

native

このホストプロセッサ。

core2

Intel Core2 プロセッサ。

nehalem

Intel Nehalem プロセッサ。

opteron

AMD Opteron プロセッサ。

penryn

Intel Penryn プロセッサ。

pentium

Intel Pentium アーキテクチャー。

pentium_pro

Intel Pentium Pro アーキテクチャー。

pentium3

Intel Pentium 3 スタイルプロセッサ。

pentium4

Intel Pentium 4 スタイルプロセッサ。

sandybridge

Intel Sandy Bridge プロセッサ。

westmere

Intel Westmere プロセッサ。

amdfam10

AMD FAM10 プロセッサ。

ivybridge

Intel Ivy Bridge プロセッサ。

haswell

Intel Haswell プロセッサ。

–xmodel=[small | medium | kernel]

–m64 の場合のみ、データアクセス用の R_X86_64_32S 再配置可能タイプを kernel の下に生成します。それ以外の場合は、R_X86_64_32small の下に生成します。SHN_AMD64_LCOMMON および .lbcomm のサポートが medium の下に追加されました。デフォルトは small です。

–Yd,path

使用する cm4defs のバージョンへのパスを指定します。

環境変数

環境
TMPDIR

通常、as コマンドは、一時ファイルを /tmp ディレクトリ内に作成します。環境変数 TMPDIR を選択したディレクトリに設定することにより、別のディレクトリを指定できます。(TMPDIR が有効なディレクトリではない場合、as /tmp を使用します)。

ファイル

デフォルトでは、as は一時ファイルを /tmp に作成します。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/
インタフェースの安定性
確実

関連項目

cpp(1), ld(1), m4(1), nm(1), strip(1), tmpnam(3C), a.out(4), attributes(5)

SPARC プラットフォームでは、–P フラグが出現すると cpp シンボル __sparc が設定され、–m32 フラグの場合には __sparcv8 が、–m64 フラグの場合には __sparcv9 がそれぞれ設定されます。

x86/x64 では、–P フラグが出現するとシンボル __i386 が設定され、–m64 フラグの場合には __amd64 が設定されます。

–m (m4(1) マクロプロセッサを起動) オプションを使用する場合、m4 はアセンブラシンボルのキーワードと、実際の m4 マクロのキーワードとを区別できないため、m4 のキーワードを入力ファイルのシンボル (変数、関数、ラベル) として使用することはできません。

適切なライブラリリンクを保証するため、可能な場合は常に、Oracle Solaris Studio C コンパイラ (cc) などのコンパイルシステムインタフェースプログラム経由でアセンブラにアクセスしてください。Oracle Solaris Studio マニュアルページの cc(1) を参照してください。