3.2.2 AT&T Syntax

In earlier versions, Free Pascal used only the gnu as assembler to generate its object les for the Intel x86 processors. Only after some time, an internal assembler was created, which wrote directly to an object le.

Since the gnu assembler uses AT&T assembly syntax, the code you write should use the same syntax. The dierences 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 dierences 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.