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 5Copyright (C) 1991-2021 Free Software Foundation, Inc. 6 7Permission is granted to copy, distribute and/or modify this document 8under the terms of the GNU Free Documentation License, Version 1.3 9or any later version published by the Free Software Foundation; 10with no Invariant Sections, with no Front-Cover Texts, and with no 11Back-Cover Texts. A copy of the license is included in the 12section entitled "GNU Free Documentation License". 13 --> 14<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ --> 15<head> 16<title>Using as: P2align</title> 17 18<meta name="description" content="Using as: P2align"> 19<meta name="keywords" content="Using as: P2align"> 20<meta name="resource-type" content="document"> 21<meta name="distribution" content="global"> 22<meta name="Generator" content="makeinfo"> 23<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 24<link href="index.html#Top" rel="start" title="Top"> 25<link href="AS-Index.html#AS-Index" rel="index" title="AS Index"> 26<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> 27<link href="Pseudo-Ops.html#Pseudo-Ops" rel="up" title="Pseudo Ops"> 28<link href="PopSection.html#PopSection" rel="next" title="PopSection"> 29<link href="Org.html#Org" rel="previous" title="Org"> 30<style type="text/css"> 31<!-- 32a.summary-letter {text-decoration: none} 33blockquote.smallquotation {font-size: smaller} 34div.display {margin-left: 3.2em} 35div.example {margin-left: 3.2em} 36div.indentedblock {margin-left: 3.2em} 37div.lisp {margin-left: 3.2em} 38div.smalldisplay {margin-left: 3.2em} 39div.smallexample {margin-left: 3.2em} 40div.smallindentedblock {margin-left: 3.2em; font-size: smaller} 41div.smalllisp {margin-left: 3.2em} 42kbd {font-style:oblique} 43pre.display {font-family: inherit} 44pre.format {font-family: inherit} 45pre.menu-comment {font-family: serif} 46pre.menu-preformatted {font-family: serif} 47pre.smalldisplay {font-family: inherit; font-size: smaller} 48pre.smallexample {font-size: smaller} 49pre.smallformat {font-family: inherit; font-size: smaller} 50pre.smalllisp {font-size: smaller} 51span.nocodebreak {white-space:nowrap} 52span.nolinebreak {white-space:nowrap} 53span.roman {font-family:serif; font-weight:normal} 54span.sansserif {font-family:sans-serif; font-weight:normal} 55ul.no-bullet {list-style: none} 56--> 57</style> 58 59 60</head> 61 62<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> 63<a name="P2align"></a> 64<div class="header"> 65<p> 66Next: <a href="PopSection.html#PopSection" accesskey="n" rel="next">PopSection</a>, Previous: <a href="Org.html#Org" accesskey="p" rel="previous">Org</a>, Up: <a href="Pseudo-Ops.html#Pseudo-Ops" accesskey="u" rel="up">Pseudo Ops</a> [<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> 67</div> 68<hr> 69<a name="g_t_002ep2align_005bwl_005d-_005babs_002dexpr_005b_002c-abs_002dexpr_005b_002c-abs_002dexpr_005d_005d_005d"></a> 70<h3 class="section">7.71 <code>.p2align[wl] [<var>abs-expr</var>[, <var>abs-expr</var>[, <var>abs-expr</var>]]]</code></h3> 71 72<a name="index-padding-the-location-counter-given-a-power-of-two"></a> 73<a name="index-p2align-directive"></a> 74<p>Pad the location counter (in the current subsection) to a particular 75storage boundary. The first expression (which must be absolute) is the 76number of low-order zero bits the location counter must have after 77advancement. For example ‘<samp>.p2align 3</samp>’ advances the location 78counter until it is a multiple of 8. If the location counter is already a 79multiple of 8, no change is needed. If the expression is omitted then a 80default value of 0 is used, effectively disabling alignment requirements. 81</p> 82<p>The second expression (also absolute) gives the fill value to be stored in the 83padding bytes. It (and the comma) may be omitted. If it is omitted, the 84padding bytes are normally zero. However, on most systems, if the section is 85marked as containing code and the fill value is omitted, the space is filled 86with no-op instructions. 87</p> 88<p>The third expression is also absolute, and is also optional. If it is present, 89it is the maximum number of bytes that should be skipped by this alignment 90directive. If doing the alignment would require skipping more bytes than the 91specified maximum, then the alignment is not done at all. You can omit the 92fill value (the second argument) entirely by simply using two commas after the 93required alignment; this can be useful if you want the alignment to be filled 94with no-op instructions when appropriate. 95</p> 96<a name="index-p2alignw-directive"></a> 97<a name="index-p2alignl-directive"></a> 98<p>The <code>.p2alignw</code> and <code>.p2alignl</code> directives are variants of the 99<code>.p2align</code> directive. The <code>.p2alignw</code> directive treats the fill 100pattern as a two byte word value. The <code>.p2alignl</code> directives treats the 101fill pattern as a four byte longword value. For example, <code>.p2alignw 1022,0x368d</code> will align to a multiple of 4. If it skips two bytes, they will be 103filled in with the value 0x368d (the exact placement of the bytes depends upon 104the endianness of the processor). If it skips 1 or 3 bytes, the fill value is 105undefined. 106</p> 107<hr> 108<div class="header"> 109<p> 110Next: <a href="PopSection.html#PopSection" accesskey="n" rel="next">PopSection</a>, Previous: <a href="Org.html#Org" accesskey="p" rel="previous">Org</a>, Up: <a href="Pseudo-Ops.html#Pseudo-Ops" accesskey="u" rel="up">Pseudo Ops</a> [<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 113 114 115</body> 116</html> 117