delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/10/12/23:59:35

received: from rap-wct8.katowice.tpnet.pl by free.polbox.pl (5.65v3.2/1.1.10.5/30Sep97-1012PM)
id AA24840; Thu, 2 Oct 1997 18:40:00 +0200
message-id: <9710021640.AA24840@free.polbox.pl>
From: "=?ISO-8859-2?Q?Robert_Darmochwa=B3?=" <kacmajor AT polbox DOT com>
To: "DJGPP Mailing List" <djgpp AT delorie DOT com>
subject: Re: And another question...
date: Thu, 2 Oct 1997 18:23:09 +0100
x-msmail-priority: Normal
x-priority: 3
x-mailer: Microsoft Internet Mail 4.70.1155
mime-version: 1.0
content-type: text/plain; charset=ISO-8859-2
content-transfer-encoding: 8bit


----------
> From: M. Schulter <mschulter AT value DOT net>
> To: djgpp AT delorie DOT com
> Subject: Re: And another question...
> Date: 2 pa<dziernika 1997 04:00
> 
> Nate Eldredge <eldredge AT ap DOT net> wrote:
> 
> : The reason the ".align 4"'s are spread throughout the code is that the
> : ".align" directive only aligns that part of the code. I.E. when the
> : assembler is assembling, it has a location counter that keeps track of
the
> : address at which the code it assembles will be. When it sees a ".align
X"
> : directive, it increases the location counter to a multiple of X, thus
making
> : the next instruction or label be on an X-byte boundary.
> 
> Hi, there, and this is just to add a fine point on the meaning of the
> number following '.align' -- hoping that I've understood the docs
> correctly, and inviting correction.
> 
> According to the GAS docs,
> 
> info as pseudo align
> 
> when .align is invoked for the a.out format on the i386, the number
> following the align statement specifies "the number of low-order
> zero-level bits" required in the location counter after advancement. Thus
> 
> .align 1     2-byte alignment   xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxx0
> .align 2     4-byte alignment   xxxx xxxx xxxx xxxx xxxx xxxx xxxx xx00
> .align 3     8-byte alignment   xxxx xxxx xxxx xxxx xxxx xxxx xxxx x000
> .align 4    16-byte alignment   xxxx xxxx xxxx xxxx xxxx xxxx xxxx 0000
> .align n   2^n-byte alignment                     etc.
> 
> If I read and interpret correctly, then '.align 4' aligns on a 16-byte
> boundary, which as mentioned elsewhere in your post helps to optimize on
> systems such as the 486.
> 
> Anyway, thanks a great deal for the information about the advantages in
> some cases of 16-byte alignment -- very valuable knowledge for an
aspirant
> to assembler. A friend and I were discussing the possible reasons for
> using '.align 4' as opposed to '.align 2' -- which I've seen gcc use in
> output from some simple C programs -- and you may have solved this
> mystery.
> 
> Most appreciatively,
> 
> Margo Schulter
> mschulter AT value DOT net
> 

hi , as far i know aligning on dword (4b) boundary is enough.
For further information i can mail you some optimize.txt file,which 
describes optimizations for pentiums and 486.
Also, if you guyz ,have any info about 'bare metal' optimizing please 
mail it to me too.(maybe i am outdated?)

	man2die4 AT earthlig DOT net

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019