Hi all > The following code appears in Grids.pas > > { Jump to TSparsePointerArray.ForAll so that it looks like it > was called > from our caller, so that the BP trick works. } > > function TSparseList.ForAll(ApplyFunction: Pointer {TSPAApply}): > Integer; assembler; > asm > MOV EAX,[EAX].TSparseList.FList > JMP TSparsePointerArray.ForAll > end; > > Does anyone know what the first line does?
It's using a BASM extension to calculate an offset per the TSparseList.Flist member and deference and load EAX from there. So given that EAX points to a TSparseList, afterwards EAX will point to the TList instance via the FList member. > More importantly, does anyone know how to convert the Intel > style assembler code to AT&T? It's a non-trival change. The parameter order to instructions is often different and the sizing is all explicit. http://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/gnu-assemble r/i386-syntax.html Cheers, Paul. _______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: delphi@delphi.org.nz Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: unsubscribe