Операнды встроенного ассемблера представляют собой выраже-
ния, которые состоят из сочетания констант, регистров, идентифи-
каторов и операций. Хотя выражения встроенного ассемблера форми-
руются с использованием тех же основных принципов, что и
выражения Паскаля, имеется ряд важных отличий, которые необходимо
пояснить.
Во встроенном ассемблере предопределенный смысл имеют следу-
ющие зарезервированные слова:
AH CL FAR SEG
AL CS HIGH SHL
AND CX LOW SHR
AX DH MOD SI
BH DI NEAR SP
BL DL NOT SS
BP DS OFFSET ST
BX DWORD OR TBYTE
BYTE DX PTR TYPE
CH ES WQORD WORD
XOR
Зарезервированные слова всегда имеют больший приоритет, чем
определенные пользователем идентификаторы. Например, во фрагменте
программы:
var
ch: Char;
...
asm
mov ch,1
end;
1 будет загружаться в регистр CH, а не в переменную CH. Для дос-
тупа к определенному пользователем имени нужно использовать ам-
персанд - операцию переопределения идентификатора (&).
asm
mov &ch,1
end;
Мы настоятельно рекомендуем не использовать определенные
пользователем идентификаторы с теми же именами, что и зарезерви-
рованные слова встроенного ассемблера, поскольку такая путаница
имен может легко приводить к очень трудноуловимым ошибкам.