AS(1) — NEWS-OS Programmer’s Manual
名称
as − RISC NEWS アセンブラ
形式
as [ option ] ... file
解説
RISC NEWS アセンブラ (as) は、MIPS オブジェクトコード (MIPS の拡張 coff フォーマット) もしくは バイナリアセンブリ言語を作成します。 as はローダを実行しません。 as が受け付ける引数 file は 1 つだけです。
引数 file は、シンボリックアセンブリ言語のソースプログラムであるとみなされます。 この引数 file は、 as によりアセンブルされ、オブジェクトファイルが作成されます。
as は、 sony、 sony_news、 r3000、 mips、 host_mips、 unix、 LANGUAGE_ASSEMBLY を定義し、環境変数 machine、 cputype にセットされている値を定義して、C マクロプリプロセッサを起動します。 もし、これらの環境変数が定義されていない場合には、 システムのデフォールトの値が設定されます。 また、デフォルトでは、 SYSTYPE_BSD を定義しますが、これは −systype name オプションが指定された場合、変更されます(以下の説明を参照)。
as は以下に示すオプションを受け付けます。これらは cc(1) のオプションと同じ意味をもちます。
−g0 アセンブラは、シンボリックデバッキングに関するシンボルテーブル情報を作 成しません。これがデフォルトです。
−g1 アセンブラは、部分的に最適化されたコードにおいて正確だが制限されたシン ボリックデバッキングをするための追加のシンボルテーブル情報を作成します。
−g または −g2
アセンブラは、完全なシンボリックデバッキングをするためのシンボルテーブ ル情報を作成します。完全なシンボリックデバッキングを制限する最適化は行 わせません。
−g3 アセンブラは、完全に最適化されたコードにおいて完全なシンボリックデバッ キングをするための追加のシンボルテーブル情報を作成します。ただし、この オプションにより作成されたオブジェクトに対して、デバッガは正確な動作を 保証しません。
−w 警告メッセージを抑制します。
−P C マクロプリプロセッサだけを実行し、ソースファイルのサフィックスを .i に変更したファイルにその結果を入れます。 ファイルがサフィックスをもっていない場合は、ソースファイル名に .i が付加されます。 .i ファイルには、 # で始まる行は含まれません。 このオプションは、 −cpp オプションを設定します。
−E ファイル上の C マクロプリプロセッサだけを実行し、 その結果を標準出力に送ります。 このオプションは、 −cpp オプションを設定します。
−C
−M
−Q これら 3 つのオプションは、そのまま cpp(1) に渡されます。 cpp(1) を参照してください。
−o output
最終的な出力ファイルを output と命名します。 このオプションを指定すると、ファイル a.out は変更されません。
−Dname=def
−Dname
C マクロプリプロセッサを起動する際に、 #define を指定したときと同様に name を定義します。定義される値 (def) が与えられない場合には、 name は 1 として定義されます。
−Uname
name の初期化定義を削除します。
−Idir 名前が / で始まっていない #include ファイルは、最初 file 引数のファイルが存在するディレクトリ内で検索され、見つからない場合には −I オプションで指定されたディレクトリ内、そして最後に標準のディレクトリ (/usr/include、/usr/sony/include) 内を検索します。
−I このオプションが指定されると、 #include ファイルの検索を、標準のディレクトリ (/usr/include、/usr/sony/include) 内に対して行ないません
−G num
グローバルポインタを用いて参照されるデータの最大サイズを、バイト単位で 指定します。 num は、10 進数とみなされます。 num が 0 の場合、グローバルポインタを用いたデータ参照は行なわれません。 num のデフォルト値は 8 バイトです。
−v as が実行する過程を、引数、入出力とともに表示します。
−V ドライバおよびすべてのパスのバージョンを表示します。これは what(1) コマンドで行われます。
−cpp アセンブルする前に、アセンブリソースファイルに対して C マクロプリプロ セッサを実行します。これはデフォルトです。
−nocpp
アセンブルする前に、アセンブリソースファイルに対して C マクロプリプロ セッサを実行しません。
as はオブジェクトファイルのターゲットのバイト順序付け (byte ordering) が どちらのものも生成することができます。 デフォルトのターゲットのバイト順序付けは、アセンブラが実行されている マシンに合わせてあります (RISC NEWS では、バイト順序付けのデフォルトは big-endian です)。 オプションの −EB と −EL は、ターゲットのバイト順序付けを指定します (それぞれ、big-endian と little-endian)。 アセンブラは、ターゲットのバイト順序付けに対する C プリプロセッサマクロ も定義します。 これらの C プリプロセッサマクロは、big-endian と little-endian のバイト 順序付けに対してそれぞれ MIPSEB と MIPSEL です。
−EB big-endian のバイト順序付けでターゲットオブジェクトファイルを生成します。 C プリプロセッサマクロ MIPSEB はアセンブラにより定義されます。これがデフォルトです。
−EL little-endian のバイト順序付けでターゲットオブジェクトファイルを生成します。 C プリプロセッサマクロ MIPSEL はアセンブラにより定義されます。
下記のオプションは as に特有のものです。
−m アセンブルする前に、ソースファイルに対し、M4 プリプロセッサを実行させ ます。
下記に示すオプションは主として、本来のコンパイル環境以外の UNIX コンパイル環境を提供するために使用されます。
−systype name
指定されたコンパイル環境 name を使用します。 サポートされるコンパイル環境の名前は、 bsd43 と sysv です。 これは、 #include ファイルに対する標準ディレクトリを変更する効力をもっています。 新しい項目は、その通常のパスに置かれますが、そのパスの先頭に、 /name が付加されます。 また、デフォルトの SYSTYPE_BSD の代わりに、形式 SYSTYPE_NAME (name は大文字で書かれます) のプリプロセッサマクロが定義されます。
−mips1
R2000/R3000 RISC アーキテクチャの命令体系にしたがったコード生成を行い ます。R2000/R3000 を用いたシステムではこれがデフォールトとなります。
−mips2
R6000 RISC アーキテクチャの命令体系にしたがったコード生成を行います。 R6000 を用いたシステムではこれがデフォールトとなります。
以下に記述するオプションは主に、コンパイラ開発を目的としており、 通常は使用されません。
−Hc 文字 c によって指定されたパスの後でコンパイルを停止し、次のパスのための中間 ファイルを生成します。 c には文字 [a] が使えます。 これは、 −t オプションと同じ方法でアセンブラパスを選択します。 このオプションを指定した場合、パスで作成、使用されたシンボルテーブルが 最後に残され、そのファイル名はソースファイルのサフィックスを .T に置換するか、末尾に加えたものです。 このファイルは削除されません。
−K 中間ファイルの名前として、ソースファイルの名前のサフィックスを中間ファ イルのタイプに対して決められたサフィックス(たとえば、バイナリアセンブ リ言語に対しては .G) で置換されたものを用います。 ソースファイルがサフィックスをもっていない場合は、従来のサフィックスが ソースファイル名に付加されます。 これらの中間ファイルは、パスに致命的なエラーが発生したときでも 削除されることはありません。
−Wc[c...],arg1[,arg2...]
引数 argi をコンパイラパス c[c..] に渡します。 c は [pab] のうちの 1 つです。 c は −t オプションと同じ方法でコンパイラパスを選択します。
オプション −t[hpab]、 −hpath および −Bstring は、特定のパスに使用する名前を選択します。 これらの引数は、左から右へと処理されるので、それらの順序は重要です。 −B オプションに出会うと、最後の −h および −t オプションを使用して名前の選択が行われます。 したがって、 −B オプションは、常に −h または −t オプションと組み合わせて用いられます。これらのオプションの組み合せに よって、任意の名前の組合せを選択することができます。
−t[hpab]
名前を選択します。選択された名前は、以下の表に従い −t オプションに続く文字により指定された名前です。
名前文字
includeh(下記の注参照)
cppp
as0a
as1b
文字 h が −t 引数中にある場合は、ディレクトリは、 #include ファイルをサーチするときに使用するディレクトリのリストに付加されます。 このディレクトリ名は、形式 COMP_TARGET_ROOT/usr/includestring をもちます。 このディレクトリは、コンパイラの string リリースに対してインクルードファイルを含むためのものです。 標準のディレクトリもまだサーチされます。
−hpath
通常使用されるディレクトリの代わりに path を使用します。
−Bstring
string を −t オプションにより指定されたすべての名前に付加します。 −B の前に −t オプションが処理されていない場合は、 −t オプションは hpab であると仮定されます。このリストはすべての名前を指定します。
形式 as string でアセンブラを呼び出すのは、コマンド行上で −Bstring オプションを使用するのと同じ効果をもちます。
環境変数 COMP_HOST_ROOT が設定された場合は、その値がデフォルトの / の代わりに、すべてのパス名に対するルートディレクトリとして使用されます。 環境変数 COMP_TARGET_ROOT が設定された場合は、その値がデフォルトの / の代わりに、インクルードファイルに対するルートディレクトリとして 使用されます。
環境変数 ROOTDIR が設定された場合は、その値がデフォルトの /usr/ の代わりにすべての名前に対するルートディレクトリとして使用されます。 これは #include ファイル /usr/include に対する標準のディレクトリ にも影響を与えます。
環境変数 TMPDIR が設定された場合、その値がデフォルトの /tmp/ の代わりに、 あらゆる一時ファイルを置くためのディレクトリとして使用されます。
ここに説明のない引数は無視されます。
ファイル
file.oオブジェクトファイル
a.outアセンブラ出力
/tmp/ctm?一時ファイル
/usr/lib/cpp C マクロプリプロセッサ
/usr/lib/as0バイナリアセンブリ言語トランスレータに対するシンボリック
/usr/lib/as1バイナリアセンブリ言語アセンブラとリオーガナイザ
/usr/include #include ファイルに対する標準ディレクトリ
関連事項
RISC NEWS Assembly Language Programmer’s Guide,
cc(1), what(1)
診断
アセンブラにより行われる診断は、自明であるように作られています。
NEWS-OSRelease 4.2.1R