User`s guide
7–6 GNU Assembler
GAS and GLD Programming Considerations
Because GAS aligns code within segments, you must be careful about how you use
the .= directive to alter the location counter. For example, to start data at address
2000:
.text
code
.=0x2000
.data
data
If the .= directive is given in the second segment (.data), then you would get the code
followed by 0x2000 bytes of space followed by the data. This causes the data to be
offset rather than assigned to the specific address (see the following example). This
problem is independent of the segment type, so that, if .text and .data were replaced
with .text 0 and .text 1, then the results would be the same.
.text
code
.data
.=0x2000
data
Do not rely on the.align directive to align code to a page. It is more reliable to use
zeros to align code within a page. See the Alpha AXP Architecture Reference Manual
for more details about pages and page frame numbers (PFNs).