GNUアセンブラ
GNUアセンブラ(グヌーアセンブラ、英: GNU assembler; GAS) はGNUプロジェクトで使用されるアセンブラである。GNUコンパイラコレクションのデフォルトバックエンドとして働き、GNUオペレーティングシステムやLinuxのコンパイルにも使われる。Ver.2.5以降はGNU Binutilsパッケージの一部分である[1]。
| プラットフォーム | クロスプラットフォーム |
|---|---|
| ライセンス | GPL 3.0かそれ以降 |
| 公式サイト | http://www.gnu.org/software/binutils/ |
Gasの実行ファイル名はasであり、Unix系システムの同名のアセンブラの替わりになる。Gasはクロスプラットフォームであり、様々なコンピュータ・アーキテクチャ上で動き、またそれらを対象にアセンブルすることができる。GNU General Public Licenseでライセンスされたフリーソフトウェアである。
一般的な構文
Gasはサポートするアーキテクチャすべてで使用可能な一般構文を持つ。一般構文にはアセンブラ・ディレクティブやコメントも含まれる。
アセンブラ・ディレクティブ
Gasはピリオドではじまるキーワードを使用した、Cのプリプロセッサに似たアセンブラ・ディレクティブ(別名:擬似命令)を使用する。ほとんどのアセンブラ・ディレクティブはすべてのアーキテクチャ対象に使用できるが、一部機種依存のものもある[2]。
コメント
Gasは、Cと同様の「/*」「*/」で囲まれる複行コメントを実装している[3]。
例:
movl %eax,%edx /* ここはコメント
改行の入った
説明文 */
Gasは「#」を単行コメントとして使用する。
例:
pop %edx # ここはコメント
# ここもコメント
movl %edx,%eax
記法
批判の一つに、x86やx86-64といったアーキテクチャ上で一般的なインテル記法ではなく、AT&T記法を使用することが挙げられる。mov などの命令の引数の順番が逆になっている。
しかし、ヴァージョン2.10[4]から追加された.intel_syntaxディレクティブにより、インテル記法もサポートされた[5][6]。
出典
- "The GNU Binutils are a collection of binary tools. The main ones are: ... as - the GNU assembler." GNU Binutils. gnu.org. 2022-03-11閲覧.
- “The GNU Assembler - Assembler Directives”. 2008年5月16日閲覧。
- “The GNU Assembler - Comments”. 2008年5月16日閲覧。
- “GNU Assembler News”. 2008年5月16日閲覧。
- “AT&T Syntax versus Intel Syntax”. Using as, the GNU Assembler. 2008年5月16日閲覧。
- Ram Narayan (2007年10月17日). “Linux assemblers: A comparison of GAS and NASM”. IBM DeveloperWorks. 2007年10月17日閲覧。
関連項目
外部リンク
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.
