<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the GNU Assembler "as".

Copyright (C) 1991-2015 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".
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using as: String</title>

<meta name="description" content="Using as: String">
<meta name="keywords" content="Using as: String">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="AS-Index.html#AS-Index" rel="index" title="AS Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Pseudo-Ops.html#Pseudo-Ops" rel="up" title="Pseudo Ops">
<link href="Struct.html#Struct" rel="next" title="Struct">
<link href="Stab.html#Stab" rel="prev" title="Stab">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="String"></a>
<div class="header">
<p>
Next: <a href="Struct.html#Struct" accesskey="n" rel="next">Struct</a>, Previous: <a href="Stab.html#Stab" accesskey="p" rel="prev">Stab</a>, Up: <a href="Pseudo-Ops.html#Pseudo-Ops" accesskey="u" rel="up">Pseudo Ops</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="g_t_002estring-_0022str_0022_002c-_002estring8-_0022str_0022_002c-_002estring16"></a>
<h3 class="section">7.87 <code>.string</code> &quot;<var>str</var>&quot;, <code>.string8</code> &quot;<var>str</var>&quot;, <code>.string16</code></h3>
<p>&quot;<var>str</var>&quot;, <code>.string32</code> &quot;<var>str</var>&quot;, <code>.string64</code> &quot;<var>str</var>&quot;
</p>
<a name="index-string_002c-copying-to-object-file"></a>
<a name="index-string8_002c-copying-to-object-file"></a>
<a name="index-string16_002c-copying-to-object-file"></a>
<a name="index-string32_002c-copying-to-object-file"></a>
<a name="index-string64_002c-copying-to-object-file"></a>
<a name="index-string-directive"></a>
<a name="index-string8-directive"></a>
<a name="index-string16-directive"></a>
<a name="index-string32-directive"></a>
<a name="index-string64-directive"></a>

<p>Copy the characters in <var>str</var> to the object file.  You may specify more than
one string to copy, separated by commas.  Unless otherwise specified for a
particular machine, the assembler marks the end of each string with a 0 byte.
You can use any of the escape sequences described in <a href="Strings.html#Strings">Strings</a>.
</p>
<p>The variants <code>string16</code>, <code>string32</code> and <code>string64</code> differ from
the <code>string</code> pseudo opcode in that each 8-bit character from <var>str</var> is
copied and expanded to 16, 32 or 64 bits respectively.  The expanded characters
are stored in target endianness byte order.
</p>
<p>Example:
</p><div class="smallexample">
<pre class="smallexample">	.string32 &quot;BYE&quot;
expands to:
	.string   &quot;B\0\0\0Y\0\0\0E\0\0\0&quot;  /* On little endian targets.  */
	.string   &quot;\0\0\0B\0\0\0Y\0\0\0E&quot;  /* On big endian targets.  */
</pre></div>





</body>
</html>
