Iinline
Встроенные операторы и директивы позволяют вам вставлять команды машинного кода непосредственно в код программы или модуля.
Замечания
Когда используется как оператор, встроенные команды вставляются непосредственно в генерируемый код.
Когда используется как директива при объявлении процедуры или функции, встроенные команды вставляются в генерируемый код, каждый раз при вызове процедуры или функции.
Встроенная команда состоит из идентификатора константы или переменной,необязательно предваренных указателем размера "<" или ">".
Идентификатор переменной может сопровождаться знаком + (плюс) или - (минус)и константой, для определения смещения от адреса переменной.
Встроенная команда генерирует 1 байт кода, если это константа в диапазоне от 0 до 255; иначе она генерирует слово (2 байта).
Вы можете использовать операторы "<" и ">", для отмены автоматического выбора размера
- < Всегда генерирует байт,
- > Всегда генерирует слово.
Синтаксис
InLine (команда/команда/.../команда)
Примеры
Пример:
(* Встроенный оператор *)
Procedure FillWord(Var Dest; Count : Word; Data : Word);
Begin
Inline(
$C4/$7E/<Dest/ (* les di, Dest[bp] *)
$8B/$4E/<Count/ (* mov cx, Count[bp]*)
$8B/$46/<Data/ (* mov ax, Data[bp] *)
$FC/ (* cld *)
$F3/$AB); (* rep stosw *)
End;
См. также Встроенный ассемблер.