toolchain/share/doc/as.html/Set.html

72 lines
3.2 KiB
HTML

<html lang="en">
<head>
<title>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="Pseudo-Ops.html#Pseudo-Ops" title="Pseudo Ops">
<link rel="prev" href="Section.html#Section" title="Section">
<link rel="next" href="Short.html#Short" title="Short">
<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="Set"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Short.html#Short">Short</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Section.html#Section">Section</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Pseudo-Ops.html#Pseudo-Ops">Pseudo Ops</a>
<hr>
</div>
<h3 class="section">7.83 <code>.set </code><var>symbol</var><code>, </code><var>expression</var></h3>
<p><a name="index-g_t_0040code_007bset_007d-directive-465"></a><a name="index-symbol-value_002c-setting-466"></a>Set the value of <var>symbol</var> to <var>expression</var>. This
changes <var>symbol</var>'s value and type to conform to
<var>expression</var>. If <var>symbol</var> was flagged as external, it remains
flagged (see <a href="Symbol-Attributes.html#Symbol-Attributes">Symbol Attributes</a>).
<p>You may <code>.set</code> a symbol many times in the same assembly provided that the
values given to the symbol are constants. Values that are based on expressions
involving other symbols are allowed, but some targets may restrict this to only
being done once per assembly. This is because those targets do not set the
addresses of symbols at assembly time, but rather delay the assignment until a
final link is performed. This allows the linker a chance to change the code in
the files, changing the location of, and the relative distance between, various
different symbols.
<p>If you <code>.set</code> a global symbol, the value stored in the object
file is the last value stored into it.
<p>On Z80 <code>set</code> is a real instruction, use
&lsquo;<samp><var>symbol</var><span class="samp"> defl </span><var>expression</var></samp>&rsquo; instead.
</body></html>