[DUG] Assembler
Paul Heinz
paul at accredo.co.nz
Thu Sep 23 14:49:27 NZST 2010
Hi Todd
> I guess the thing that's throwing me here, is the use of
> [EAX].TSparseList Is it casting the register as a pointer to
> a TSparseList instance, in order to get the offset to the FList field?
> I'm wondering what the equivalent is in AT&T.
Well, there are no casts in assembler per se - it's just a useful
shorthand for calculating a member offset that will stay correct even if
you rearrange the TSparseList class declaration which is a very nice
BASM feature.
So, assuming the offset to the FList member from the start of a
TSparseList instance is 12 bytes (for arguments sakes), in AT&T syntax
that would be:
movl 12(%eax), %eax
Purely out of curiousity, but why do you want the AT&T syntax
equivalent? Is this for part of a Lazarus port?
Also, I gather Freepascal will translate intel BASM syntax to AT&T
syntax before passing it down the GNU toolchain. Maybe you could capture
the intermediate result?
Cheers,
Paul.
More information about the Delphi
mailing list