GNU Assembler

From Encoresoup - The Ultimate Guide to Free/Open Source Software

Jump to: navigation, search
This article contains content from the Wikipedia article:
GNU Assembler
history contributors
GNU Assembler
Stable release

2.18  (28 August 2007)

Platform: Cross-platform
Website: http://www.gnu.org/software/binutils/


The GNU Assembler, commonly known as Gas, is the assembler used by the GNU Project. It is the default back-end of gcc, and is used to compile the GNU operating system and Linux, amongst others. It is a part of the GNU Binutils package.

Gas's executable is named after as, an Unix assembler. Gas is cross-platform, and both runs on and assembles for a number of different computer architectures. Released under the GNU General Public License, Gas is free software.

Contents

[edit] General Syntax

The GNU Assembler has a general syntax that works for all of the supported architectures. The general syntax includes assembler directives and a method for commenting.

[edit] Assembler Directives

The GNU Assembler uses assembler directives (also known as pseudo ops), which are keywords beginning with a period that behave similarly to preprocesser directives in the C programming language. Most of the available assembler directives are valid regardless of the target architecture, however some directives are machine dependent.[1]

[edit] Comments

Similar to the C programming language is Gas's implementation of multiline comments which uses /* to begin a comment and */ to end a comment.[2]

For example:

    movl %eax,%edx /* this is a comment sandwich,
                      it is made of description
                      and linebreak */

Gas uses the # symbol for a single-line comment.

For example:

    pop  %edx # this is a comment
# as well as this
    movl %edx,%eax

[edit] Criticisms

One source of criticism is the fact that on the x86 and x86-64 architecture it uses the AT&T assembler syntax, rather than the Intel syntax used in many other assemblers; however, since version 2.10[3], support for the Intel syntax via the .intel_syntax directive has been added.[4][5]

[edit] See also

[edit] References

[edit] External links

Wikibooks
Wikibooks X86 Assembly has a page on the topic of
Personal tools

Credit Card Size Digital Video Player [ThinkGeek] USB Squid - Flexible 4 Port USB Hub [ThinkGeek]The Ruby Programming Language [Amazon]