AT&T Syntax

Free Pascal uses the GNU as assembler to generate its object files for the Intel Ix86 processors. Since the GNU assembler uses AT&T assembly syntax, the code you write should use the same syntax. The differences between AT&T and Intel syntax as used in Turbo Pascal are summarized in the following:

More information about the AT&T syntax can be found in the as manual, although the following differences with normal AT&T assembly must be taken into account:

The AT&T inline assembler supports the following macros:

__RESULT
represents the function result return value.
__SELF
represents the object method pointer in methods.
__OLDEBP
represents the old base pointer in recusrive routines.