<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Assembly trouble in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537428#M5544</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Wed Apr 27 06:40:47 MST 2011&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Align is aligning the next address with:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;align x, address is aligned to 2^x&amp;nbsp; :eek:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So 'align 2' = word alignment&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;A simple 'align' is interpreted as 'align 2'&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can watch this effect in your disassembly or asm output.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.align 4 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;is aligning to next 0Xxxx0&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.align 3 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;is aligning to next 0Xxxx0 or 0Xxxx8&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.align 2 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;is aligning to next 0Xxxx0 or 0Xxxx4 0Xxxx8 or 0XxxxC&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can test that with a simple:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;.align 4
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //1
.align 4
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //2
.align 3
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //3
.align 3
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //4
.align 3
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //5
.align 3
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //6
.align 2
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //7
.align 2
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //8
.align 2
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //9
.align 2
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp; //10&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;SPAN&gt;Result:&lt;/SPAN&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //1&lt;BR /&gt;0x00000320 &amp;lt;asm_test&amp;gt;:&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000322 &amp;lt;asm_test+2&amp;gt;:&amp;nbsp; nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000324 &amp;lt;asm_test+4&amp;gt;:&amp;nbsp; nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000326 &amp;lt;asm_test+6&amp;gt;:&amp;nbsp; nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000328 &amp;lt;asm_test+8&amp;gt;:&amp;nbsp; nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000032a &amp;lt;asm_test+10&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000032c &amp;lt;asm_test+12&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000032e &amp;lt;asm_test+14&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //2&lt;BR /&gt;0x00000330 &amp;lt;asm_test+16&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000332 &amp;lt;asm_test+18&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000334 &amp;lt;asm_test+20&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000336 &amp;lt;asm_test+22&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //3&lt;BR /&gt;0x00000338 &amp;lt;asm_test+24&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000033a &amp;lt;asm_test+26&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000033c &amp;lt;asm_test+28&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000033e &amp;lt;asm_test+30&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //4&lt;BR /&gt;0x00000340 &amp;lt;asm_test+32&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000342 &amp;lt;asm_test+34&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000344 &amp;lt;asm_test+36&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000346 &amp;lt;asm_test+38&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //5&lt;BR /&gt;0x00000348 &amp;lt;asm_test+40&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000034a &amp;lt;asm_test+42&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000034c &amp;lt;asm_test+44&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000034e &amp;lt;asm_test+46&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //6&lt;BR /&gt;0x00000350 &amp;lt;asm_test+48&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000352 &amp;lt;asm_test+50&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //7&lt;BR /&gt;0x00000354 &amp;lt;asm_test+52&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000356 &amp;lt;asm_test+54&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //8&lt;BR /&gt;0x00000358 &amp;lt;asm_test+56&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000035a &amp;lt;asm_test+58&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //9&lt;BR /&gt;0x0000035c &amp;lt;asm_test+60&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000035e &amp;lt;asm_test+62&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp; //10&lt;BR /&gt;0x00000360 &amp;lt;asm_test+64&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;Note: Byte alignment is done with[INDENT] .balign x&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sample: .balign 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //4 byte (=word) alignment&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 21:48:07 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T21:48:07Z</dc:date>
    <item>
      <title>Assembly trouble</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537424#M5540</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ant on Tue Apr 26 08:17:02 MST 2011&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;If I put the data before the code, I get an error that says &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Error: invalid offset, value too big (0xFFFFFFF0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The code that gets the error looks like this:&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ldr r1, .ttt&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;That number 0xFFFFFFF0 is not the number I put in, but rather is generated by the assembler, saying that the data is -16 bytes offset from the PC, which is well within range of the instruction from what I read.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This one, generated from C code, gets the same error:&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r2, .L39+36&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I put the data after the code, then the last line of the code gets highlighted as the error, and I get five lines of error saying "undefined reference to labelname"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried each of these as the last line, with the same result.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bx&amp;nbsp;&amp;nbsp;&amp;nbsp; lr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp; asm_test&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pop&amp;nbsp;&amp;nbsp;&amp;nbsp; {r7, pc}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using a LPC1113&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Tony&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:48:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537424#M5540</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:48:04Z</dc:date>
    </item>
    <item>
      <title>Re: Assembly trouble</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537425#M5541</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by jharwood on Tue Apr 26 12:18:10 MST 2011&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;According to the manual, the 16 bit Thumb LDR instruction can have a PC relative offset of 0 to 1020 and must be a multiple of 4. Do you have a '.align 2' directive before the local data?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you post a complete section of your code showing the problem?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:48:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537425#M5541</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:48:05Z</dc:date>
    </item>
    <item>
      <title>Re: Assembly trouble</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537426#M5542</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Tue Apr 26 12:42:48 MST 2011&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I think he created an old fashioned negative offset instead a positive like:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; .syntax unified
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .cpu cortex-m3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .thumb
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align 2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .global&amp;nbsp;&amp;nbsp;&amp;nbsp; asm_test

.thumb_func
asm_test:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r3, .mydata
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bx&amp;nbsp;&amp;nbsp;&amp;nbsp; lr
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align&amp;nbsp;&amp;nbsp;&amp;nbsp; 2
.mydata:
&amp;nbsp;&amp;nbsp;&amp;nbsp; .word 0x12345678
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:48:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537426#M5542</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:48:06Z</dc:date>
    </item>
    <item>
      <title>Re: Assembly trouble</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537427#M5543</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ant on Tue Apr 26 23:34:25 MST 2011&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Ok, that explains why putting the data before causes errors, but it doesn't explain the error on the last line. That's ok though, 'cause I got it working with your template, except for a few changes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;According to the LPC111x manual, it is cortex-m0, but you had cortex-m3. Changing it to cortex-m0 caused errors on two instructions, (mov r2, #100 and sub r4, r5). I removed the&amp;nbsp; .syntax unified and then it worked. So here's what I got, that works (or at least seems to work).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, I don't understand why it is ".align 2", shouldn't that be just .align or .align 4? Seems odd to me.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .cpu cortex-m0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .thumb&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align 2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .global&amp;nbsp;&amp;nbsp;&amp;nbsp; asm_test&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .thumb_func&lt;BR /&gt;asm_test:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r6, .timer32b0base&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r5, [r6, #8] // timer value&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov r2, #100&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, .timer16b0base&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r2, [r1, #0x18] // Timer16B0 Match Reg 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r4, [r6, #8] // timer value&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sub r4, r5&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, .rambase&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r4, [r1]&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bx&amp;nbsp;&amp;nbsp;&amp;nbsp; lr&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;BR /&gt;.timer32b0base:&amp;nbsp;&amp;nbsp;&amp;nbsp; .word 0x40014000&amp;nbsp;&amp;nbsp;&amp;nbsp; // timer 32b0&lt;BR /&gt;.timer16b0base:&amp;nbsp;&amp;nbsp;&amp;nbsp; .word 0x4000C000&amp;nbsp;&amp;nbsp;&amp;nbsp; // timer 16b0&lt;BR /&gt;.rambase:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .word 0x10000000&lt;BR /&gt;&lt;BR /&gt;.end&lt;/SPAN&gt;&lt;HR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:48:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537427#M5543</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:48:07Z</dc:date>
    </item>
    <item>
      <title>Re: Assembly trouble</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537428#M5544</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Wed Apr 27 06:40:47 MST 2011&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Align is aligning the next address with:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;align x, address is aligned to 2^x&amp;nbsp; :eek:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So 'align 2' = word alignment&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;A simple 'align' is interpreted as 'align 2'&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can watch this effect in your disassembly or asm output.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.align 4 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;is aligning to next 0Xxxx0&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.align 3 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;is aligning to next 0Xxxx0 or 0Xxxx8&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.align 2 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;is aligning to next 0Xxxx0 or 0Xxxx4 0Xxxx8 or 0XxxxC&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can test that with a simple:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;.align 4
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //1
.align 4
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //2
.align 3
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //3
.align 3
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //4
.align 3
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //5
.align 3
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //6
.align 2
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //7
.align 2
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //8
.align 2
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //9
.align 2
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp; //10&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;SPAN&gt;Result:&lt;/SPAN&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //1&lt;BR /&gt;0x00000320 &amp;lt;asm_test&amp;gt;:&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000322 &amp;lt;asm_test+2&amp;gt;:&amp;nbsp; nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000324 &amp;lt;asm_test+4&amp;gt;:&amp;nbsp; nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000326 &amp;lt;asm_test+6&amp;gt;:&amp;nbsp; nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000328 &amp;lt;asm_test+8&amp;gt;:&amp;nbsp; nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000032a &amp;lt;asm_test+10&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000032c &amp;lt;asm_test+12&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000032e &amp;lt;asm_test+14&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //2&lt;BR /&gt;0x00000330 &amp;lt;asm_test+16&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000332 &amp;lt;asm_test+18&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000334 &amp;lt;asm_test+20&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000336 &amp;lt;asm_test+22&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //3&lt;BR /&gt;0x00000338 &amp;lt;asm_test+24&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000033a &amp;lt;asm_test+26&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000033c &amp;lt;asm_test+28&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000033e &amp;lt;asm_test+30&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //4&lt;BR /&gt;0x00000340 &amp;lt;asm_test+32&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000342 &amp;lt;asm_test+34&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000344 &amp;lt;asm_test+36&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000346 &amp;lt;asm_test+38&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //5&lt;BR /&gt;0x00000348 &amp;lt;asm_test+40&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000034a &amp;lt;asm_test+42&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000034c &amp;lt;asm_test+44&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000034e &amp;lt;asm_test+46&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //6&lt;BR /&gt;0x00000350 &amp;lt;asm_test+48&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000352 &amp;lt;asm_test+50&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //7&lt;BR /&gt;0x00000354 &amp;lt;asm_test+52&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x00000356 &amp;lt;asm_test+54&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //8&lt;BR /&gt;0x00000358 &amp;lt;asm_test+56&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000035a &amp;lt;asm_test+58&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop //9&lt;BR /&gt;0x0000035c &amp;lt;asm_test+60&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;0x0000035e &amp;lt;asm_test+62&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp; //10&lt;BR /&gt;0x00000360 &amp;lt;asm_test+64&amp;gt;: nop&amp;nbsp;&amp;nbsp; ; (mov r8, r8)&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;Note: Byte alignment is done with[INDENT] .balign x&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sample: .balign 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //4 byte (=word) alignment&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:48:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537428#M5544</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:48:07Z</dc:date>
    </item>
    <item>
      <title>Re: Assembly trouble</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537429#M5545</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by larryvc on Wed Apr 27 09:42:16 MST 2011&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Zero, This is the one of the best posts on defining the align directive that I have found.&amp;nbsp; It has definitely cleared up my misunderstanding of how it worked.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank You,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Larry&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:48:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Assembly-trouble/m-p/537429#M5545</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:48:08Z</dc:date>
    </item>
  </channel>
</rss>

