<html lang="en"> <head> <title>SH64-Addressing - 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="SH64-Syntax.html#SH64-Syntax" title="SH64 Syntax"> <link rel="prev" href="SH64_002dRegs.html#SH64_002dRegs" title="SH64-Regs"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- 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''. --> <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="SH64-Addressing"></a> <a name="SH64_002dAddressing"></a> <p> Previous: <a rel="previous" accesskey="p" href="SH64_002dRegs.html#SH64_002dRegs">SH64-Regs</a>, Up: <a rel="up" accesskey="u" href="SH64-Syntax.html#SH64-Syntax">SH64 Syntax</a> <hr> </div> <h5 class="subsubsection">9.41.2.3 Addressing Modes</h5> <p><a name="index-addressing-modes_002c-SH64-1977"></a><a name="index-SH64-addressing-modes-1978"></a> 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: <pre class="example"> movi 4,r2 pt function, tr4 movi (function >> 16) & 65535,r0 shori function & 65535, r0 ld.l r0,4,r0 </pre> <p><a name="index-datalabel_002c-SH64-1979"></a>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: <pre class="example"> .long function .long datalabel function </pre> <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. </body></html>