<html lang="en">
<head>
<title>D10V-Subs - 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="D10V_002dSyntax.html#D10V_002dSyntax" title="D10V-Syntax">
<link rel="prev" href="D10V_002dSize.html#D10V_002dSize" title="D10V-Size">
<link rel="next" href="D10V_002dChars.html#D10V_002dChars" title="D10V-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="D10V-Subs"></a>
<a name="D10V_002dSubs"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="D10V_002dChars.html#D10V_002dChars">D10V-Chars</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="D10V_002dSize.html#D10V_002dSize">D10V-Size</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="D10V_002dSyntax.html#D10V_002dSyntax">D10V-Syntax</a>
<hr>
</div>

<h5 class="subsubsection">9.8.2.2 Sub-Instructions</h5>

<p><a name="index-D10V-sub_002dinstructions-756"></a><a name="index-sub_002dinstructions_002c-D10V-757"></a>The D10V assembler takes as input a series of instructions, either one-per-line,
or in the special two-per-line format described in the next section.  Some of these
instructions will be short-form or sub-instructions.  These sub-instructions can be packed
into a single instruction.  The assembler will do this automatically.  It will also detect
when it should not pack instructions.  For example, when a label is defined, the next
instruction will never be packaged with the previous one.  Whenever a branch and link
instruction is called, it will not be packaged with the next instruction so the return
address will be valid.  Nops are automatically inserted when necessary.

   <p>If you do not want the assembler automatically making these decisions, you can control
the packaging and execution type (parallel or sequential) with the special execution
symbols described in the next section.

   </body></html>

