aboutsummaryrefslogtreecommitdiff
path: root/gas/doc/as.1
blob: 08d5805f37c8f14a3d31ede6c696d973649e8ddd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
.\" Copyright (c) 1991, 1992, 1996, 1997, 1998 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH as 1 "29 March 1996" "cygnus support" "GNU Development Tools"

.SH NAME
GNU as \- the portable GNU assembler.

.SH SYNOPSIS
.na
.B as
.RB "[\|" \-a "[\|" dhlns "\|]" \c
\&\[\|\=\c
.I file\c
\&\|]\|]
.RB "[\|" \-D "\|]"
.RB "[\|" \-\-defsym\ SYM=VAL "\|]"
.RB "[\|" \-f "\|]"
.RB "[\|" \-\-gstabs "\|]"
.RB "[\|" \-I
.I path\c
\&\|]
.RB "[\|" \-K "\|]"
.RB "[\|" \-L "\|]"
.RB "[\|" \-M\ |\ \-\-mri "\|]"
.RB "[\|" \-o 
.I objfile\c
\&\|]
.RB "[\|" \-R "\|]"
.RB "[\|" \-\-traditional\-format "\|]"
.RB "[\|" \-v "\|]"
.RB "[\|" \-w "\|]"
.RB "[\|" \-\^\- "\ |\ " \c
.I files\c
\&\|.\|.\|.\|]

.I i960-only options:
.br
.RB "[\|" \-ACA "\||\|" \-ACA_A "\||\|" \-ACB\c
.RB "\||\|" \-ACC "\||\|" \-AKA "\||\|" \-AKB\c
.RB "\||\|" \-AKC "\||\|" \-AMC "\|]"
.RB "[\|" \-b "\|]"
.RB "[\|" \-no-relax "\|]"

.I m680x0-only options:
.br
.RB "[\|" \-l "\|]"
.RB "[\|" \-mc68000 "\||\|" \-mc68010 "\||\|" \-mc68020 "\|]"
.ad b

.SH DESCRIPTION
GNU \c
.B as\c
\& is really a family of assemblers.  
If you use (or have used) the GNU assembler on one architecture, you
should find a fairly similar environment when you use it on another
architecture.  Each version has much in common with the others,
including object file formats, most assembler directives (often called
\c
.I pseudo-ops)\c
\& and assembler syntax.  

For information on the syntax and pseudo-ops used by GNU \c
.B as\c
\&, see `\|\c
.B as\c
\|' entry in \c
.B info \c
(or the manual \c
.I
.I
Using as: The GNU Assembler\c
\&).

\c
.B as\c
\& is primarily intended to assemble the output of the GNU C
compiler \c
.B gcc\c
\& for use by the linker \c
.B ld\c
\&.  Nevertheless,
we've tried to make \c
.B as\c
\& assemble correctly everything that the native
assembler would.
This doesn't mean \c
.B as\c
\& always uses the same syntax as another
assembler for the same architecture; for example, we know of several
incompatible versions of 680x0 assembly language syntax.

Each time you run \c
.B as\c
\& it assembles exactly one source
program.  The source program is made up of one or more files.
(The standard input is also a file.)

If \c
.B as\c
\& is given no file names it attempts to read one input file
from the \c
.B as\c
\& standard input, which is normally your terminal.  You
may have to type \c
.B ctl-D\c
\& to tell \c
.B as\c
\& there is no more program
to assemble.  Use `\|\c
.B \-\^\-\c
\|' if you need to explicitly name the standard input file
in your command line.

.B as\c
\& may write warnings and error messages to the standard error
file (usually your terminal).  This should not happen when \c
.B as\c
\& is
run automatically by a compiler.  Warnings report an assumption made so
that \c
.B as\c
\& could keep assembling a flawed program; errors report a
grave problem that stops the assembly.

.SH OPTIONS
.TP
.BR \-a
Turn on assembly listings.  There are various suboptions.
.B d
omits debugging directives.
.B h
includes the high level source code; this is only available if the
source file can be found, and the code was compiled with
.B \-g.
.B l
includes an assembly listing.
.B n
omits forms processing.
.B s
includes a symbol listing.
.B =
.I file
sets the listing file name; this must be the last suboption.
The default suboptions are
.B hls.
.TP
.B \-D
This option is accepted only for script compatibility with calls to
other assemblers; it has no effect on \c
.B as\c
\&.
.TP
.B \-\-defsym SYM=VALUE
Define the symbol SYM to be VALUE before assembling the input file.
VALUE must be an integer constant.  As in C, a leading 0x indicates a
hexadecimal value, and a leading 0 indicates an octal value.
.TP
.B \-f
``fast''--skip preprocessing (assume source is compiler output).
.TP
.BI "\-I\ " path
Add 
.I path
to the search list for 
.B .include
directives.
.TP
.B \-\-gstabs
Generate stabs debugging information for each assembler line.  This
may help debugging assembler code, if the debugger can handle it.
.TP
.B \-K
Issue warnings when difference tables altered for long displacements.
.TP
.B \-L
Keep (in symbol table) local symbols, starting with `\|\c
.B L\c
\|'
.TP
.B \-M, \-\-mri
Assemble in MRI compatibility mode.
.TP
.BI "\-o\ " objfile
Name the object-file output from \c
.B as
.TP
.B \-R
Fold data section into text section
.TP
.B \-\-traditional\-format
Use same format as native assembler, when possible.
.TP
.B \-v
Announce \c
.B as\c
\& version
.TP
.B \-W, \-\-no-warn
Suppress warning messages.
.TP
.B \-\-fatal\-warnings
Consider warnings to be fatal.
.TP
.B \-\-warn
Just warn on warnings.
.TP
.IR "\-\^\-" "\ |\ " "files\|.\|.\|."
Source files to assemble, or standard input (\c
.BR "\-\^\-" ")"
.TP
.BI \-A var
.I
(When configured for Intel 960.)
Specify which variant of the 960 architecture is the target.
.TP
.B \-b
.I
(When configured for Intel 960.)
Add code to collect statistics about branches taken.
.TP
.B \-no-relax
.I
(When configured for Intel 960.)
Do not alter compare-and-branch instructions for long displacements;
error if necessary.
.TP
.B \-l
.I
(When configured for Motorola 68000).  
.br
Shorten references to undefined symbols, to one word instead of two.
.TP
.BR "\-mc68000" "\||\|" "\-mc68010" "\||\|" "\-mc68020"
.I
(When configured for Motorola 68000).  
.br
Specify what processor in the 68000 family is the target (default 68020)

.PP
Options may be in any order, and may be
before, after, or between file names.  The order of file names is
significant.

`\|\c
.B \-\^\-\c
\|' (two hyphens) by itself names the standard input file
explicitly, as one of the files for \c
.B as\c
\& to assemble.

Except for `\|\c
.B \-\^\-\c
\|' any command line argument that begins with a
hyphen (`\|\c
.B \-\c
\|') is an option.  Each option changes the behavior of
\c
.B as\c
\&.  No option changes the way another option works.  An
option is a `\|\c
.B \-\c
\|' followed by one or more letters; the case of
the letter is important.   All options are optional.

The `\|\c
.B \-o\c
\|' option expects exactly one file name to follow.  The file
name may either immediately follow the option's letter (compatible
with older assemblers) or it may be the next command argument (GNU
standard).  

These two command lines are equivalent:
.br
.B
as\ \ \-o\ \ my\-object\-file.o\ \ mumble.s
.br
.B
as\ \ \-omy\-object\-file.o\ \ mumble.s

.SH "SEE ALSO"
.RB "`\|" as "\|'"
entry in 
.B
info\c
\&; 
.I
Using as: The GNU Assembler\c
\&;
.BR gcc "(" 1 "),"
.BR ld "(" 1 ")."

.SH COPYING
Copyright (c) 1991, 1992 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.