
Функции и процедуры Директивы компилятора Встроенный ассемблер Команды редактора и зарезервированные слова Сообщения об ошибках Примеры программ Написать письмо
О проекте Автора!Автора! |
|
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; |