blob: f30693168290e260c0d46b33079e93801d38816b [file] [log] [blame]
<html lang="en">
<head>
<title>S12Z Syntax Overview - 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="S12Z-Syntax.html#S12Z-Syntax" title="S12Z Syntax">
<link rel="next" href="S12Z-Addressing-Modes.html#S12Z-Addressing-Modes" title="S12Z Addressing Modes">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU Assembler "as".
Copyright (C) 1991-2019 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>
</head>
<body>
<div class="node">
<a name="S12Z-Syntax-Overview"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="S12Z-Addressing-Modes.html#S12Z-Addressing-Modes">S12Z Addressing Modes</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="S12Z-Syntax.html#S12Z-Syntax">S12Z Syntax</a>
<hr>
</div>
<h5 class="subsubsection">9.24.2.1 Overview</h5>
<p>In the S12Z syntax, the instruction name comes first and it may
be followed by one, or by several operands.
In most cases the maximum number of operands is three.
Operands are separated by a comma (&lsquo;<samp><span class="samp">,</span></samp>&rsquo;).
A comma however does not act as a separator if it appears within parentheses
(&lsquo;<samp><span class="samp">()</span></samp>&rsquo;) or within square brackets (&lsquo;<samp><span class="samp">[]</span></samp>&rsquo;).
<code>as</code> will complain if too many, too few or inappropriate operands
are specified for a given instruction.
<p>Some instructions accept and (in certain situations require) a suffix
indicating the size of the operand.
The suffix is separated from the instruction name by a period (&lsquo;<samp><span class="samp">.</span></samp>&rsquo;)
and may be one of &lsquo;<samp><span class="samp">b</span></samp>&rsquo;, &lsquo;<samp><span class="samp">w</span></samp>&rsquo;, &lsquo;<samp><span class="samp">p</span></samp>&rsquo; or &lsquo;<samp><span class="samp">l</span></samp>&rsquo; indicating
`byte' (a single byte), `word' (2 bytes), `pointer' (3 bytes) or `long' (4 bytes)
respectively.
<p>Example:
<pre class="smallexample"> bset.b 0xA98, #5
mov.b #6, 0x2409
ld d0, #4
mov.l (d0, x), 0x2409
inc d0
cmp d0, #12
blt *-4
lea x, 0x2409
st y, (1, x)
</pre>
<p><a name="index-line-comment-character_002c-S12Z-1524"></a>The presence of a &lsquo;<samp><span class="samp">;</span></samp>&rsquo; character anywhere
on a line indicates the start of a comment that extends to the end of
that line.
<p>A &lsquo;<samp><span class="samp">*</span></samp>&rsquo; or a &lsquo;<samp><span class="samp">#</span></samp>&rsquo; character at the start of a line also
introduces a line comment, but these characters do not work elsewhere
on the line. If the first character of the line is a &lsquo;<samp><span class="samp">#</span></samp>&rsquo; then as
well as starting a comment, the line could also be logical line number
directive (see <a href="Comments.html#Comments">Comments</a>) or a preprocessor control command
(see <a href="Preprocessing.html#Preprocessing">Preprocessing</a>).
<p><a name="index-line-separator_002c-S12Z-1525"></a><a name="index-statement-separator_002c-S12Z-1526"></a><a name="index-S12Z-line-separator-1527"></a>The S12Z assembler does not currently support a line separator
character.
</body></html>