Inline "..."

Встроенные операторы и директивы позволяют вам вставлять команды машинного кода непосредственно в код программы или модуля.

Объявление

InLine (команда/команда/.../команда)

Замечания

Когда используется как оператор, встроенные команды вставляются непосредственно в генерируемый код.

Когда используется как директива при объявлении процедуры или функции, встроенные команды вставляются в генерируемый код, каждый раз при вызове процедуры или функции.

Встроенная команда состоит из идентификатора константы или переменной, необязательно предваренных указателем размера "<" или ">".

Идентификатор переменной может сопровождаться знаком + (плюс) или - (минус) и константой, для определения смещения от адреса переменной.

Встроенная команда генерирует 1 байт кода, если это константа в диапазоне от 0 до 255; иначе она генерирует слово (2 байта).

Вы можете использовать операторы "<" и ">", для отмены автоматического выбора размера:

  • < - всегда генерирует байт,
  • > - всегда генерирует слово.

Пример
 (* Встроенный оператор *)
 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;