3.2.2 AT&T Syntax

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

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.