SH64_002dAddressing.html 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- This file documents the GNU Assembler "as".
  4. Copyright (C) 1991-2017 Free Software Foundation, Inc.
  5. Permission is granted to copy, distribute and/or modify this document
  6. under the terms of the GNU Free Documentation License, Version 1.3
  7. or any later version published by the Free Software Foundation;
  8. with no Invariant Sections, with no Front-Cover Texts, and with no
  9. Back-Cover Texts. A copy of the license is included in the
  10. section entitled "GNU Free Documentation License".
  11. -->
  12. <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
  13. <head>
  14. <title>Using as: SH64-Addressing</title>
  15. <meta name="description" content="Using as: SH64-Addressing">
  16. <meta name="keywords" content="Using as: SH64-Addressing">
  17. <meta name="resource-type" content="document">
  18. <meta name="distribution" content="global">
  19. <meta name="Generator" content="makeinfo">
  20. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  21. <link href="index.html#Top" rel="start" title="Top">
  22. <link href="AS-Index.html#AS-Index" rel="index" title="AS Index">
  23. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  24. <link href="SH64-Syntax.html#SH64-Syntax" rel="up" title="SH64 Syntax">
  25. <link href="SH64-Directives.html#SH64-Directives" rel="next" title="SH64 Directives">
  26. <link href="SH64_002dRegs.html#SH64_002dRegs" rel="prev" title="SH64-Regs">
  27. <style type="text/css">
  28. <!--
  29. a.summary-letter {text-decoration: none}
  30. blockquote.smallquotation {font-size: smaller}
  31. div.display {margin-left: 3.2em}
  32. div.example {margin-left: 3.2em}
  33. div.indentedblock {margin-left: 3.2em}
  34. div.lisp {margin-left: 3.2em}
  35. div.smalldisplay {margin-left: 3.2em}
  36. div.smallexample {margin-left: 3.2em}
  37. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  38. div.smalllisp {margin-left: 3.2em}
  39. kbd {font-style:oblique}
  40. pre.display {font-family: inherit}
  41. pre.format {font-family: inherit}
  42. pre.menu-comment {font-family: serif}
  43. pre.menu-preformatted {font-family: serif}
  44. pre.smalldisplay {font-family: inherit; font-size: smaller}
  45. pre.smallexample {font-size: smaller}
  46. pre.smallformat {font-family: inherit; font-size: smaller}
  47. pre.smalllisp {font-size: smaller}
  48. span.nocodebreak {white-space:nowrap}
  49. span.nolinebreak {white-space:nowrap}
  50. span.roman {font-family:serif; font-weight:normal}
  51. span.sansserif {font-family:sans-serif; font-weight:normal}
  52. ul.no-bullet {list-style: none}
  53. -->
  54. </style>
  55. </head>
  56. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  57. <a name="SH64_002dAddressing"></a>
  58. <div class="header">
  59. <p>
  60. 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>
  61. </div>
  62. <hr>
  63. <a name="Addressing-Modes-4"></a>
  64. <h4 class="subsubsection">9.42.2.3 Addressing Modes</h4>
  65. <a name="index-addressing-modes_002c-SH64"></a>
  66. <a name="index-SH64-addressing-modes"></a>
  67. <p>SH64 operands consist of either a register or immediate value. The
  68. immediate value can be a constant or label reference (or portion of a
  69. label reference), as in this example:
  70. </p>
  71. <div class="example">
  72. <pre class="example"> movi 4,r2
  73. pt function, tr4
  74. movi (function &gt;&gt; 16) &amp; 65535,r0
  75. shori function &amp; 65535, r0
  76. ld.l r0,4,r0
  77. </pre></div>
  78. <a name="index-datalabel_002c-SH64"></a>
  79. <p>Instruction label references can reference labels in either SHmedia or
  80. SHcompact. To differentiate between the two, labels in SHmedia sections
  81. will always have the least significant bit set (i.e. they will be odd),
  82. which SHcompact labels will have the least significant bit reset
  83. (i.e. they will be even). If you need to reference the actual address
  84. of a label, you can use the <code>datalabel</code> modifier, as in this
  85. example:
  86. </p>
  87. <div class="example">
  88. <pre class="example"> .long function
  89. .long datalabel function
  90. </pre></div>
  91. <p>In that example, the first longword may or may not have the least
  92. significant bit set depending on whether the label is an SHmedia label
  93. or an SHcompact label. The second longword will be the actual address
  94. of the label, regardless of what type of label it is.
  95. </p>
  96. </body>
  97. </html>