blob: f69549ce18d93c1e760984ac4a18a6d9ae54c8ff [file] [log] [blame]
<!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-2013 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: SH64-Addressing</title>
<meta name="description" content="Using as: SH64-Addressing">
<meta name="keywords" content="Using as: SH64-Addressing">
<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="SH64-Syntax.html#SH64-Syntax" rel="up" title="SH64 Syntax">
<link href="SH64-Directives.html#SH64-Directives" rel="next" title="SH64 Directives">
<link href="SH64_002dRegs.html#SH64_002dRegs" rel="prev" title="SH64-Regs">
<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="SH64_002dAddressing"></a>
<div class="header">
<p>
Previous: <a href="SH64_002dRegs.html#SH64_002dRegs" accesskey="p" rel="prev">SH64-Regs</a>, Up: <a href="SH64-Syntax.html#SH64-Syntax" accesskey="u" rel="up">SH64 Syntax</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="Addressing-Modes-4"></a>
<h4 class="subsubsection">9.40.2.3 Addressing Modes</h4>
<a name="index-addressing-modes_002c-SH64"></a>
<a name="index-SH64-addressing-modes"></a>
<p>SH64 operands consist of either a register or immediate value. The
immediate value can be a constant or label reference (or portion of a
label reference), as in this example:
</p>
<div class="example">
<pre class="example"> movi 4,r2
pt function, tr4
movi (function &gt;&gt; 16) &amp; 65535,r0
shori function &amp; 65535, r0
ld.l r0,4,r0
</pre></div>
<a name="index-datalabel_002c-SH64"></a>
<p>Instruction label references can reference labels in either SHmedia or
SHcompact. To differentiate between the two, labels in SHmedia sections
will always have the least significant bit set (i.e. they will be odd),
which SHcompact labels will have the least significant bit reset
(i.e. they will be even). If you need to reference the actual address
of a label, you can use the <code>datalabel</code> modifier, as in this
example:
</p>
<div class="example">
<pre class="example"> .long function
.long datalabel function
</pre></div>
<p>In that example, the first longword may or may not have the least
significant bit set depending on whether the label is an SHmedia label
or an SHcompact label. The second longword will be the actual address
of the label, regardless of what type of label it is.
</p>
</body>
</html>