Provided by: binutils-avr_2.25+Atmel3.5.0-2_amd64 bug

NAME

       gasp - a preprocessor for assembly programs

SYNOPSIS

       gasp   [-a|--alternate]  [-c CHAR | --commentchar CHAR] [-d|--debug] [-h|--help] [-M|--mri] [-o OUTFILE |
              --output OUTFILE] [-p|--print] [-s|--copysource] [-u|--unreasonable] [-v|--version] INFILE ...

DESCRIPTION

       The primary purpose of the GNU assembler is to assemble the output of other programs--notably  compilers.
       When you have to hand-code specialized routines in assembly, that means the GNU assembler is an unfriend‐
       ly  processor:  it  has no directives for macros, conditionals, or many other conveniences that you might
       expect.

       In some cases you can simply use the C preprocessor, or a generalized preprocessor like M4; but this  can
       be awkward, since none of these things are designed with assembly in mind.

       gasp fills this need.  It is expressly designed to provide the facilities you need with hand-coded assem‐
       bly code.  Implementing it as a preprocessor, rather than part of the assembler, allows the maximum flex‐
       ibility: you can use it with hand-coded assembly, without paying a penalty of added complexity in the as‐
       sembler you use for compiler output.

       INFILE...  are the files to be preprocessed.

OPTIONS

       The  simplest way to use GASP is to run it as a filter and assemble its output.  In Unix and its ilk, you
       can do this, for example:

            $ gasp prog.asm | as -o prog.o

       Naturally, there are also a few command-line options to allow you to request  variations  on  this  basic
       theme.  Here is the full set of possibilities for the GASP command line.

       -a

       --alternate
              Use  alternative  macro  syntax.  *Note Alternate macro syntax: Alternate, for a discussion of how
              this syntax differs from the default GASP syntax.

       -c CHAR

       --commentchar CHAR
              Use CHAR as the comment character.  The default comment character is `!'.  For example, to  use  a
              semicolon  as  the  comment character, specify `-c ';'' on the GASP command line.  Since assembler
              command characters often have special significance to command shells, it is a good idea  to  quote
              or escape CHAR when you specify a comment character.

              For the sake of simplicity, all examples in this manual use the default comment character `!'.

       -d

       --debug
              Show  debugging  statistics.   In  this version of GASP, this option produces statistics about the
              string buffers that GASP allocates internally.  For each defined buffersize S, GASP shows the num‐
              ber of strings N that it allocated, with a line like this:

                   strings size S : N

              GASP displays these statistics on the standard error stream, when done preprocessing.

       -h

       --help Display a summary of the GASP command line options.

       -M

       --mri  Use MRI compatibility mode.  Using this option causes GASP to accept  the  syntax  and  pseudo-ops
              used by the Microtec Research `ASM68K' assembler.

       -o OUTFILE

       --output OUTFILE
              `-o  OUTFILE' `--output OUTFILE' Write the output in a file called OUTFILE.  If you do not use the
              `-o' option, GASP writes its output on the standard output stream.

       -p

       --print
              Print line numbers.  GASP obeys this option _only_ if you also specify `-s' to copy  source  lines
              to its output.  With `-s -p', GASP displays the line number of each source line copied (immediate‐
              ly after the comment character at the beginning of the line).

       -s

       --copysource
              Copy  the source lines to the output file.  Use this option to see the effect of each preprocessor
              line on the GASP output.  GASP places a comment character (`!' by default)  at  the  beginning  of
              each source line it copies, so that you can use this option and still assemble the result.

       -u

       --unreasonable
              Bypass "unreasonable expansion" limit.  Since you can define GASP macros inside other macro defin‐
              itions,  the  preprocessor  normally  includes a sanity check.  If your program requires more than
              1,000 nested expansions, GASP normally exits with an error message.  Use this option to  turn  off
              this check, allowing unlimited nested expansions.

       -v

       --version
              Display the GASP version number.

       INFILE ...
              The  input  file  names.  You must specify at least one input file; if you specify more, GASP pre‐
              processes them all, concatenating the output in the order you list the INFILE arguments.

              Mark the end of each input file with the preprocessor command `.END'.

SEE ALSO

       `gasp' entry in info; The GNU Binary Utilities, Roland H. Pesch (October 1991); gasp(1).

Debian                                           September 1999                                          gasp(1)