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.
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.
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.
Similar to the C programming language is Gas's implementation of multiline comments which uses /* to begin a comment and */ to end a comment.
movl %eax,%edx /* this is a comment sandwich,
it is made of description
and linebreak */
Gas uses the # symbol for a single-line comment.
pop %edx # this is a comment
# as well as this
One source of criticism is the fact that on the x86
architecture it uses the AT&T
assembler syntax, rather than the Intel
syntax used in many other assemblers; however, since version 2.10, support for the Intel syntax via the
directive has been added.