Chapter 8.
Assembler Directives
All assembler directives have names that begin with a period (
.
). The rest of the name is letters,
usually in lower case.
This chapter discusses directives that are available regardless of the target machine configuration for
the gnu assembler. Some machine configurations provide additional directives. Chapter 9 Machine
Dependent Features.
8.1.
.abort
This directive stops the assembly immediately. It is for compatibility with other assemblers. The
original idea was that the assembly language source would be piped into the assembler. If the sender of
the source quit, it could use this directive tells
as
to quit also. One day
.abort
will not be supported.
8.2.
.ABORT
When producing COFF output,
as
accepts this directive as a synonym for
.abort
.
When producing
b.out
output,
as
accepts this directive, but ignores it.
8.3.
.align abs expr, abs expr, abs expr
Pad the location counter (in the current subsection) to a particular storage boundary. The first expres
sion (which must be absolute) is the alignment required, as described below.
The second expression (also absolute) gives the fill value to be stored in the padding bytes. It (and
the comma) may be omitted. If it is omitted, the padding bytes are normally zero. However, on some
systems, if the section is marked as containing code and the fill value is omitted, the space is filled
with no op instructions.
The third expression is also absolute, and is also optional. If it is present, it is the maximum number of
bytes that should be skipped by this alignment directive. If doing the alignment would require skipping
more bytes than the specified maximum, then the alignment is not done at all. You can omit the fill
value (the second argument) entirely by simply using two commas after the required alignment; this
can be useful if you want the alignment to be filled with no op instructions when appropriate.
The way the required alignment is specified varies from system to system. For the a29k, arc, hppa, i386
using ELF, i860, iq2000, m68k, m88k, or32, s390, sparc, tic4x, tic80 and xtensa, the first expression
is the alignment request in bytes. For example
.align 8
advances the location counter until it is a
multiple of 8. If the location counter is already a multiple of 8, no change is needed. For the tic54x,
the first expression is the alignment request in words.
For other systems, including the i386 using a.out format, and the arm and strongarm, it is the number
of low order zero bits the location counter must have after advancement. For example
.align 3
advances the location counter until it a multiple of 8. If the location counter is already a multiple of 8,
no change is needed.
This inconsistency is due to the different behaviors of the various native assemblers for these systems
which GAS must emulate. GAS also provides
.balign
and
.p2align
directives, described later,
which have a consistent behavior across all architectures (but are specific to GAS).
footer
Our partners:
PHP: Hypertext Preprocessor Best Web Hosting
Java Web Hosting
Inexpensive Web Hosting
Jsp Web Hosting
Cheapest Web Hosting
Jsp Hosting
Cheap Hosting
Visionwebhosting.net Business web hosting division of Web
Design Plus. All rights reserved