GNUアセンブラ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
GNUアセンブラ
プラットフォーム クロスプラットフォーム
公式サイト http://www.gnu.org/software/binutils/
テンプレートを表示

GNUアセンブラ(グニューアセンブラ)、GNUプロジェクトで使用されるアセンブラ。「Gas」の名で知られる。GNUコンパイラコレクションのデフォルトバックエンドとして働き、GNUオペレーティング・システムやLinuxのコンパイルにも使われる。GNU Binutilsパッケージの一部分である。

Gasの実行ファイル名はasであり、Unix系システムの同名のアセンブラの替わりになる。Gasはクロスプラットフォームであり、様々なコンピュータ・アーキテクチャ上で動き、またそれらを対象にアセンブルすることができる。GNU General Public Licenseでライセンスされたフリーソフトウェアである。

一般的な構文[編集]

Gasはサポートするアーキテクチャすべてで使用可能な一般構文を持つ。一般構文にはアセンブラ・ディレクティブやコメントも含まれる。

アセンブラ・ディレクティブ[編集]

Gasはピリオドではじまるキーワードを使用した、Cのプリプロセッサに似たアセンブラ・ディレクティブ(別名:擬似命令)を使用する。ほとんどのアセンブラ・ディレクティブはすべてのアーキテクチャ対象に使用できるが、一部機種依存のものもある[1]

コメント[編集]

Gasは、Cと同様の「/*」「*/」で囲まれる複行コメントを実装している[2]

例:

    movl %eax,%edx /* ここはコメント
                      改行の入った
                      説明文 */

Gasは「#」を単行コメントとして使用する。

例:

    pop  %edx # ここはコメント
# ここもコメント
    movl %edx,%eax

記法[編集]

批判の一つに、x86x86-64といったアーキテクチャ上で一般的なインテル記法ではなく、AT&T記法を使用することが挙げられる。mov などの命令の引数の順番が逆になっている。

しかし、ヴァージョン2.10[3]から追加された.intel_syntaxディレクティブにより、インテル記法もサポートされた[4][5]

関連項目[編集]

出典[編集]

  1. ^ The GNU Assembler - Assembler Directives”. 2008年5月16日閲覧。
  2. ^ The GNU Assembler - Comments”. 2008年5月16日閲覧。
  3. ^ GNU Assembler News”. 2008年5月16日閲覧。
  4. ^ AT&T Syntax versus Intel Syntax”. Using as, the GNU Assembler. 2008年5月16日閲覧。
  5. ^ Ram Narayan (2007年10月17日). “Linux assemblers: A comparison of GAS and NASM”. IBM DeveloperWorks. 2007年10月17日閲覧。

外部リンク[編集]

ポータル FLOSS ポータル FLOSS