Grundsätzlich gibt es für die Nutzung von ASM unter Delphi 3 Möglichkeiten.
Fangen wir an:
Die einfachste Variante ist die Nutzung von Inline-ASM in einer Funktion. Je nach Umfang kann man hier entweder einen Teilblock, oder die gesamte Funktion in ASM fassen.
Was Delphi in der System.pas macht ist IIRC die nutzung von {$I 'datei.inc'} zum Einbinden von zusätzlichen Source-Dateien. Diese ist grundsätzlich mit der oberen Variante identisch, beschränkt jedoch auf die Nutzung vollständiger Code-Blöcke in den externen Dateien.
Möglichkeit 2 ist die Nutzung von Object-Files. Was Delphi da wirklich hernimmt, ist mir bisher schleierhaft, da weder GCC noch MSVC kompatible Object-Files erzeugen. Die Nutzung dieser Möglichkeit ist z.B. bei der ZLib umgesetzt und benötigt eine External-Deklaration der zugehörigen Funktionen inklusive der Nutzung der Compiler-Direktive [$O 'objfile.obj'}.
Und zu guter Letzt bleibt noch die Variante 3: ASM-Routinen als DLL einbinden.
Einen direkten Compiler zur Nutzung von ASM, wie es in C möglich ist, ist in Delphi nicht vorgesehen. Unter Delphi scheitert man bei ASM schon bei OOP an einigen etwas umfangreicheren Konstrukten. Insgesamt ist es daher unter Delphi keine gute Idee ASM einzusetzen, wo es nicht notwendig ist ...
MfG,
BenBE.
_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.