blob: 8052da92e1024f56a0c27fddbdae319650515c3e [file] [log] [blame]
<html lang="en">
<head>
<title>SH-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="SH-Syntax.html#SH-Syntax" title="SH Syntax">
<link rel="prev" href="SH_002dRegs.html#SH_002dRegs" title="SH-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, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2006, 2007, 2008, 2009, 2010 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>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="SH-Addressing"></a>
<a name="SH_002dAddressing"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="SH_002dRegs.html#SH_002dRegs">SH-Regs</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="SH-Syntax.html#SH-Syntax">SH Syntax</a>
<hr>
</div>
<h5 class="subsubsection">9.33.2.3 Addressing Modes</h5>
<p><a name="index-addressing-modes_002c-SH-1584"></a><a name="index-SH-addressing-modes-1585"></a><code>as</code> understands the following addressing modes for the SH.
<code>R</code><var>n</var> in the following refers to any of the numbered
registers, but <em>not</em> the control registers.
<dl>
<dt><code>R</code><var>n</var><dd>Register direct
<br><dt><code>@R</code><var>n</var><dd>Register indirect
<br><dt><code>@-R</code><var>n</var><dd>Register indirect with pre-decrement
<br><dt><code>@R</code><var>n</var><code>+</code><dd>Register indirect with post-increment
<br><dt><code>@(</code><var>disp</var><code>, R</code><var>n</var><code>)</code><dd>Register indirect with displacement
<br><dt><code>@(R0, R</code><var>n</var><code>)</code><dd>Register indexed
<br><dt><code>@(</code><var>disp</var><code>, GBR)</code><dd><code>GBR</code> offset
<br><dt><code>@(R0, GBR)</code><dd>GBR indexed
<br><dt><var>addr</var><dt><code>@(</code><var>disp</var><code>, PC)</code><dd>PC relative address (for branch or for addressing memory). The
<code>as</code> implementation allows you to use the simpler form
<var>addr</var> anywhere a PC relative address is called for; the alternate
form is supported for compatibility with other assemblers.
<br><dt><code>#</code><var>imm</var><dd>Immediate data
</dl>
</body></html>