blob: 4cf048d60cbd42d9bc89adff08be8c47689c8e4b [file] [log] [blame]
<html lang="en">
<head>
<title>ARM-Instruction-Set - Using as</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using as">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="ARM-Syntax.html#ARM-Syntax" title="ARM Syntax">
<link rel="next" href="ARM_002dChars.html#ARM_002dChars" title="ARM-Chars">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU Assembler "as".
Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled ``GNU Free Documentation License''.
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="ARM-Instruction-Set"></a>
<a name="ARM_002dInstruction_002dSet"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="ARM_002dChars.html#ARM_002dChars">ARM-Chars</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="ARM-Syntax.html#ARM-Syntax">ARM Syntax</a>
<hr>
</div>
<h5 class="subsubsection">9.3.2.1 Instruction Set Syntax</h5>
<p>Two slightly different syntaxes are support for ARM and THUMB
instructions. The default, <code>divided</code>, uses the old style where
ARM and THUMB instructions had their own, separate syntaxes. The new,
<code>unified</code> syntax, which can be selected via the <code>.syntax</code>
directive, and has the following main features:
<dl>
<dt>&bull;<dd>Immediate operands do not require a <code>#</code> prefix.
<br><dt>&bull;<dd>The <code>IT</code> instruction may appear, and if it does it is validated
against subsequent conditional affixes. In ARM mode it does not
generate machine code, in THUMB mode it does.
<br><dt>&bull;<dd>For ARM instructions the conditional affixes always appear at the end
of the instruction. For THUMB instructions conditional affixes can be
used, but only inside the scope of an <code>IT</code> instruction.
<br><dt>&bull;<dd>All of the instructions new to the V6T2 architecture (and later) are
available. (Only a few such instructions can be written in the
<code>divided</code> syntax).
<br><dt>&bull;<dd>The <code>.N</code> and <code>.W</code> suffixes are recognized and honored.
<br><dt>&bull;<dd>All instructions set the flags if and only if they have an <code>s</code>
affix.
</dl>
</body></html>