Пользователю предоставляется возможность делать вставки на встроенном ассемблере в исходный текст на языке Delphi.
К встроенному ассемблеру можно обратиться с помощью зарезервированного слова asm, за которым следуют команды ассемблера и слово end:
asm <оператор ассемблера> ... <оператор ассемблера>end; |
На одной строке можно поместить несколько операторов ассемблера, разделенных двоеточием. Если каждый оператор размещен на отдельной строке, двоеточие не ставится.
В языке Delphi имеется возможность не только делать ассемблерные вставки, но писать процедуры и функции полностью на ассемблере. В этом случае тело подпрограммы ограничивается словами asm иend (а не begin и end), между которыми помещаются инструкции ассемблера. Перед словом asmмогут располагаться объявления локальных констант, типов, и переменных. Например, вот как могут быть реализованы функции вычисления минимального и максимального значения из двух целых чисел:
function Min(A, B: Integer): Integer; register;asm CMP EDX, EAX JGE @@1 MOV EAX, EDX @@1:end; function Max(A, B: Integer): Integer; register;asm CMP EDX, EAX JLE @@1 MOV EAX, EDX @@1:end; |
Обращение к этим функциям имеет привычный вид:
Writeln(Min(10, 20));Writeln(Max(10, 20)); |