<html lang="en">
<head>
<title>Z80 Directives - 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="Z80_002dDependent.html#Z80_002dDependent" title="Z80-Dependent">
<link rel="prev" href="Z80-Floating-Point.html#Z80-Floating-Point" title="Z80 Floating Point">
<link rel="next" href="Z80-Opcodes.html#Z80-Opcodes" title="Z80 Opcodes">
<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="Z80-Directives"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Z80-Opcodes.html#Z80-Opcodes">Z80 Opcodes</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Z80-Floating-Point.html#Z80-Floating-Point">Z80 Floating Point</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Z80_002dDependent.html#Z80_002dDependent">Z80-Dependent</a>
<hr>
</div>

<h4 class="subsection">9.56.4 Z80 Assembler Directives</h4>

<p><samp><span class="command">as</span></samp> for the Z80 supports some additional directives for
compatibility with other assemblers.

   <p><a name="index-Z80_002donly-directives-2692"></a>These are the additional directives in <code>as</code> for the Z80:

     <dl>
<dt><code>db </code><var>expression</var><code>|</code><var>string</var><code>[,</code><var>expression</var><code>|</code><var>string</var><code>...]</code><dt><code>defb </code><var>expression</var><code>|</code><var>string</var><code>[,</code><var>expression</var><code>|</code><var>string</var><code>...]</code><dd>For each <var>string</var> the characters are copied to the object file, for
each other <var>expression</var> the value is stored in one byte. 
A warning is issued in case of an overflow.

     <br><dt><code>dw </code><var>expression</var><code>[,</code><var>expression</var><code>...]</code><dt><code>defw </code><var>expression</var><code>[,</code><var>expression</var><code>...]</code><dd>For each <var>expression</var> the value is stored in two bytes, ignoring
overflow.

     <br><dt><code>d24 </code><var>expression</var><code>[,</code><var>expression</var><code>...]</code><dt><code>def24 </code><var>expression</var><code>[,</code><var>expression</var><code>...]</code><dd>For each <var>expression</var> the value is stored in three bytes, ignoring
overflow.

     <br><dt><code>d32 </code><var>expression</var><code>[,</code><var>expression</var><code>...]</code><dt><code>def32 </code><var>expression</var><code>[,</code><var>expression</var><code>...]</code><dd>For each <var>expression</var> the value is stored in four bytes, ignoring
overflow.

     <br><dt><code>ds </code><var>count</var><code>[, </code><var>value</var><code>]</code><dt><code>defs </code><var>count</var><code>[, </code><var>value</var><code>]</code><dd><!-- Synonyms for @code{ds.b}, -->
<!-- which should have been described elsewhere -->
Fill <var>count</var> bytes in the object file with <var>value</var>, if
<var>value</var> is omitted it defaults to zero.

     <br><dt><var>symbol</var><code> equ </code><var>expression</var><dt><var>symbol</var><code> defl </code><var>expression</var><dd>These directives set the value of <var>symbol</var> to <var>expression</var>. If
<code>equ</code> is used, it is an error if <var>symbol</var> is already defined. 
Symbols defined with <code>equ</code> are not protected from redefinition.

     <br><dt><code>set</code><dd>This is a normal instruction on Z80, and not an assembler directive.

     <br><dt><code>psect </code><var>name</var><dd>A synonym for See <a href="Section.html#Section">Section</a>, no second argument should be given.

   </dl>

   </body></html>

