Регистрация   Войти
Процедуры и функции
Работа с принтером
Constructor
DateTime
Destructor
Fail
GetFillSettings
GetImage
GetLineSettings
GetMaxMode
GetMaxX
GetMaxY
GetPalette
GetTextSettings
GetVerify
GetViewSettings
GraphErrorMSG
Include
InitGraph
InitMemory
Insert
Insline
Int
New
Object
SetAllPalette
Virtual
Примеры программ

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;