Align.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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-2020 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.1, http://www.gnu.org/software/texinfo/ -->
  13. <head>
  14. <title>Using as: Align</title>
  15. <meta name="description" content="Using as: Align">
  16. <meta name="keywords" content="Using as: Align">
  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="Pseudo-Ops.html#Pseudo-Ops" rel="up" title="Pseudo Ops">
  25. <link href="Altmacro.html#Altmacro" rel="next" title="Altmacro">
  26. <link href="ABORT-_0028COFF_0029.html#ABORT-_0028COFF_0029" rel="previous" title="ABORT (COFF)">
  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="Align"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="Altmacro.html#Altmacro" accesskey="n" rel="next">Altmacro</a>, Previous: <a href="ABORT-_0028COFF_0029.html#ABORT-_0028COFF_0029" accesskey="p" rel="previous">ABORT (COFF)</a>, Up: <a href="Pseudo-Ops.html#Pseudo-Ops" accesskey="u" rel="up">Pseudo Ops</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="g_t_002ealign-_005babs_002dexpr_005b_002c-abs_002dexpr_005b_002c-abs_002dexpr_005d_005d_005d"></a>
  64. <h3 class="section">7.3 <code>.align [<var>abs-expr</var>[, <var>abs-expr</var>[, <var>abs-expr</var>]]]</code></h3>
  65. <a name="index-padding-the-location-counter"></a>
  66. <a name="index-align-directive"></a>
  67. <p>Pad the location counter (in the current subsection) to a particular storage
  68. boundary. The first expression (which must be absolute) is the alignment
  69. required, as described below. If this expression is omitted then a default
  70. value of 0 is used, effectively disabling alignment requirements.
  71. </p>
  72. <p>The second expression (also absolute) gives the fill value to be stored in the
  73. padding bytes. It (and the comma) may be omitted. If it is omitted, the
  74. padding bytes are normally zero. However, on most systems, if the section is
  75. marked as containing code and the fill value is omitted, the space is filled
  76. with no-op instructions.
  77. </p>
  78. <p>The third expression is also absolute, and is also optional. If it is present,
  79. it is the maximum number of bytes that should be skipped by this alignment
  80. directive. If doing the alignment would require skipping more bytes than the
  81. specified maximum, then the alignment is not done at all. You can omit the
  82. fill value (the second argument) entirely by simply using two commas after the
  83. required alignment; this can be useful if you want the alignment to be filled
  84. with no-op instructions when appropriate.
  85. </p>
  86. <p>The way the required alignment is specified varies from system to system.
  87. For the arc, hppa, i386 using ELF, iq2000, m68k, or1k,
  88. s390, sparc, tic4x and xtensa, the first expression is the
  89. alignment request in bytes. For example &lsquo;<samp>.align 8</samp>&rsquo; advances
  90. the location counter until it is a multiple of 8. If the location counter
  91. is already a multiple of 8, no change is needed. For the tic54x, the
  92. first expression is the alignment request in words.
  93. </p>
  94. <p>For other systems, including ppc, i386 using a.out format, arm and
  95. strongarm, it is the
  96. number of low-order zero bits the location counter must have after
  97. advancement. For example &lsquo;<samp>.align 3</samp>&rsquo; advances the location
  98. counter until it is a multiple of 8. If the location counter is already a
  99. multiple of 8, no change is needed.
  100. </p>
  101. <p>This inconsistency is due to the different behaviors of the various
  102. native assemblers for these systems which GAS must emulate.
  103. GAS also provides <code>.balign</code> and <code>.p2align</code> directives,
  104. described later, which have a consistent behavior across all
  105. architectures (but are specific to GAS).
  106. </p>
  107. <hr>
  108. <div class="header">
  109. <p>
  110. Next: <a href="Altmacro.html#Altmacro" accesskey="n" rel="next">Altmacro</a>, Previous: <a href="ABORT-_0028COFF_0029.html#ABORT-_0028COFF_0029" accesskey="p" rel="previous">ABORT (COFF)</a>, Up: <a href="Pseudo-Ops.html#Pseudo-Ops" accesskey="u" rel="up">Pseudo Ops</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>
  111. </div>
  112. </body>
  113. </html>