Files
2024-02-19 00:21:47 -05:00

188 lines
5.0 KiB
HTML

<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52
from ../texi/as.texinfo on 24 April 1999 -->
<TITLE>Using as - ARM Dependent Features</TITLE>
</HEAD>
<BODY>
Go to the <A HREF="as_1.html">first</A>, <A HREF="as_10.html">previous</A>, <A HREF="as_12.html">next</A>, <A HREF="as_27.html">last</A> section, <A HREF="as_toc.html">table of contents</A>.
<P><HR><P>
<H1><A NAME="SEC152" HREF="as_toc.html#TOC152">ARM Dependent Features</A></H1>
<P>
<A NAME="IDX461"></A>
<A NAME="IDX462"></A>
</P>
<H2><A NAME="SEC153" HREF="as_toc.html#TOC153">Options</A></H2>
<P>
<A NAME="IDX463"></A>
<A NAME="IDX464"></A>
<DL COMPACT>
<DT><CODE>-marm <VAR>[2|250|3|6|60|600|610|620|7|7m|7d|7dm|7di|7dmi|70|700|700i|710|710c|7100|7500|7500fe|7tdmi|8|strongarm|strongarm110]</VAR></CODE>
<DD>
<A NAME="IDX465"></A>
This option specifies the target processor. The assembler will issue an
error message if an attempt is made to assemble an instruction which
will not execute on the target processor.
<A NAME="IDX466"></A>
<DT><CODE>-marmv <VAR>[2|2a|3|3m|4|4t]</VAR></CODE>
<DD>
This option specifies the target architecture. The assembler will issue
an error message if an attempt is made to assemble an instruction which
will not execute on the target architecture.
<A NAME="IDX467"></A>
<DT><CODE>-mthumb</CODE>
<DD>
This option specifies that only Thumb instructions should be assembled.
<A NAME="IDX468"></A>
<DT><CODE>-mall</CODE>
<DD>
This option specifies that any Arm or Thumb instruction should be assembled.
<A NAME="IDX469"></A>
<DT><CODE>-mfpa <VAR>[10|11]</VAR></CODE>
<DD>
This option specifies the floating point architecture in use on the
target processor.
<A NAME="IDX470"></A>
<DT><CODE>-mfpe-old</CODE>
<DD>
Do not allow the assemble of floating point multiple instructions.
<A NAME="IDX471"></A>
<DT><CODE>-mno-fpu</CODE>
<DD>
Do not allow the assembly of any floating point instructions.
<A NAME="IDX472"></A>
<DT><CODE>-mthumb-interwork</CODE>
<DD>
This option specifies that the output generated by the assembler should
be marked as supporting interworking.
<A NAME="IDX473"></A>
<DT><CODE>-mapcs <VAR>[26|32]</VAR></CODE>
<DD>
This option specifies that the output generated by the assembler should
be marked as supporting the indicated version of the Arm Procedure.
Calling Standard.
<A NAME="IDX474"></A>
<DT><CODE>-EB</CODE>
<DD>
This option specifies that the output generated by the assembler should
be marked as being encoded for a big-endian processor.
<A NAME="IDX475"></A>
<DT><CODE>-EL</CODE>
<DD>
This option specifies that the output generated by the assembler should
be marked as being encoded for a little-endian processor.
</DL>
<H2><A NAME="SEC154" HREF="as_toc.html#TOC154">Syntax</A></H2>
<H3><A NAME="SEC155" HREF="as_toc.html#TOC155">Special Characters</A></H3>
<P>
<A NAME="IDX476"></A>
<A NAME="IDX477"></A>
<SAMP>`;'</SAMP> is the line comment character.
</P>
<P>
<A NAME="IDX478"></A>
<A NAME="IDX479"></A>
*TODO* Explain about /data modifier on symbols.
</P>
<H3><A NAME="SEC156" HREF="as_toc.html#TOC156">Register Names</A></H3>
<P>
<A NAME="IDX480"></A>
<A NAME="IDX481"></A>
*TODO* Explain about ARM register naming, and the predefined names.
</P>
<H2><A NAME="SEC157" HREF="as_toc.html#TOC157">Floating Point</A></H2>
<P>
<A NAME="IDX482"></A>
<A NAME="IDX483"></A>
The ARM family uses IEEE floating-point numbers.
</P>
<H2><A NAME="SEC158" HREF="as_toc.html#TOC158">ARM Machine Directives</A></H2>
<P>
<A NAME="IDX484"></A>
<A NAME="IDX485"></A>
<DL COMPACT>
<DT><CODE>.code <VAR>[16|32]</VAR></CODE>
<DD>
<A NAME="IDX486"></A>
This directive selects the instruction set being generated. The value 16
selects Thumb, with the value 32 selecting ARM.
<A NAME="IDX487"></A>
<DT><CODE>.thumb</CODE>
<DD>
This performs the same action as <VAR>.code 16</VAR>.
<A NAME="IDX488"></A>
<DT><CODE>.arm</CODE>
<DD>
This performs the same action as <VAR>.code 32</VAR>.
<A NAME="IDX489"></A>
<DT><CODE>.force_thumb</CODE>
<DD>
This directive forces the selection of Thumb instructions, even if the
target processor does not support those instructions
<A NAME="IDX490"></A>
<DT><CODE>.thumb_func</CODE>
<DD>
This directive specifies that the following symbol is the name of a
Thumb encoded function. This information is necessary in order to allow
the assembler and linker to generate correct code for interworking
between Arm and Thumb instructions and should be used even if
interworking is not going to be performed.
</DL>
<H2><A NAME="SEC159" HREF="as_toc.html#TOC159">Opcodes</A></H2>
<P>
<A NAME="IDX491"></A>
<A NAME="IDX492"></A>
<CODE>as</CODE> implements all the standard ARM opcodes.
</P>
<P>
*TODO* Document the pseudo-ops (adr, nop)
</P>
<P>
For information on the ARM or Thumb instruction sets, see <CITE>ARM
Software Development Toolkit Reference Manual</CITE>, Advanced RISC Machines
Ltd.
</P>
<P><HR><P>
Go to the <A HREF="as_1.html">first</A>, <A HREF="as_10.html">previous</A>, <A HREF="as_12.html">next</A>, <A HREF="as_27.html">last</A> section, <A HREF="as_toc.html">table of contents</A>.
</BODY>
</HTML>