MMIX_002dSymbols.html 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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: MMIX-Symbols</title>
  15. <meta name="description" content="Using as: MMIX-Symbols">
  16. <meta name="keywords" content="Using as: MMIX-Symbols">
  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="MMIX_002dSyntax.html#MMIX_002dSyntax" rel="up" title="MMIX-Syntax">
  25. <link href="MMIX_002dRegs.html#MMIX_002dRegs" rel="next" title="MMIX-Regs">
  26. <link href="MMIX_002dChars.html#MMIX_002dChars" rel="prev" title="MMIX-Chars">
  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="MMIX_002dSymbols"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="MMIX_002dRegs.html#MMIX_002dRegs" accesskey="n" rel="next">MMIX-Regs</a>, Previous: <a href="MMIX_002dChars.html#MMIX_002dChars" accesskey="p" rel="prev">MMIX-Chars</a>, Up: <a href="MMIX_002dSyntax.html#MMIX_002dSyntax" accesskey="u" rel="up">MMIX-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="Symbols-4"></a>
  64. <h4 class="subsubsection">9.28.3.2 Symbols</h4>
  65. <p>The character &lsquo;<samp>:</samp>&rsquo; is permitted in identifiers. There are two
  66. exceptions to it being treated as any other symbol character: if a symbol
  67. begins with &lsquo;<samp>:</samp>&rsquo;, it means that the symbol is in the global namespace
  68. and that the current prefix should not be prepended to that symbol
  69. (see <a href="MMIX_002dPseudos.html#MMIX_002dprefix">MMIX-prefix</a>). The &lsquo;<samp>:</samp>&rsquo; is then not considered part of the
  70. symbol. For a symbol in the label position (first on a line), a &lsquo;<samp>:</samp>&rsquo;
  71. at the end of a symbol is silently stripped off. A label is permitted,
  72. but not required, to be followed by a &lsquo;<samp>:</samp>&rsquo;, as with many other
  73. assembly formats.
  74. </p>
  75. <p>The character &lsquo;<samp>@</samp>&rsquo; in an expression, is a synonym for &lsquo;<samp>.</samp>&rsquo;, the
  76. current location.
  77. </p>
  78. <p>In addition to the common forward and backward local symbol formats
  79. (see <a href="Symbol-Names.html#Symbol-Names">Symbol Names</a>), they can be specified with upper-case &lsquo;<samp>B</samp>&rsquo; and
  80. &lsquo;<samp>F</samp>&rsquo;, as in &lsquo;<samp>8B</samp>&rsquo; and &lsquo;<samp>9F</samp>&rsquo;. A local label defined for the
  81. current position is written with a &lsquo;<samp>H</samp>&rsquo; appended to the number:
  82. </p><div class="smallexample">
  83. <pre class="smallexample">3H LDB $0,$1,2
  84. </pre></div>
  85. <p>This and traditional local-label formats cannot be mixed: a label must be
  86. defined and referred to using the same format.
  87. </p>
  88. <p>There&rsquo;s a minor caveat: just as for the ordinary local symbols, the local
  89. symbols are translated into ordinary symbols using control characters are
  90. to hide the ordinal number of the symbol. Unfortunately, these symbols
  91. are not translated back in error messages. Thus you may see confusing
  92. error messages when local symbols are used. Control characters
  93. &lsquo;<samp>\003</samp>&rsquo; (control-C) and &lsquo;<samp>\004</samp>&rsquo; (control-D) are used for the
  94. MMIX-specific local-symbol syntax.
  95. </p>
  96. <p>The symbol &lsquo;<samp>Main</samp>&rsquo; is handled specially; it is always global.
  97. </p>
  98. <p>By defining the symbols &lsquo;<samp>__.MMIX.start..text</samp>&rsquo; and
  99. &lsquo;<samp>__.MMIX.start..data</samp>&rsquo;, the address of respectively the &lsquo;<samp>.text</samp>&rsquo;
  100. and &lsquo;<samp>.data</samp>&rsquo; segments of the final program can be defined, though when
  101. linking more than one object file, the code or data in the object file
  102. containing the symbol is not guaranteed to be start at that position; just
  103. the final executable. See <a href="MMIX_002dPseudos.html#MMIX_002dloc">MMIX-loc</a>.
  104. </p>
  105. <hr>
  106. <div class="header">
  107. <p>
  108. Next: <a href="MMIX_002dRegs.html#MMIX_002dRegs" accesskey="n" rel="next">MMIX-Regs</a>, Previous: <a href="MMIX_002dChars.html#MMIX_002dChars" accesskey="p" rel="prev">MMIX-Chars</a>, Up: <a href="MMIX_002dSyntax.html#MMIX_002dSyntax" accesskey="u" rel="up">MMIX-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>
  109. </div>
  110. </body>
  111. </html>