Руководство по языку B.Pascal 7


Операторы Inline


Оператор inline состоит из зарезервированного слова Inline, за которым следует одна или более встроенных записей (записей ма- шинного кода), разделенных косой чертой и заключенных в круглые скобки:

inline(10/$2345/Count+1/Data-Offset);

Оператор inline имеет следующий синтаксис:

--------- ---- ----------- ---- подставляемый -->¦ inline +->¦ ( +---->¦ запись в +-T->¦ ) +-> оператор L--------- L---- ^ ¦ машинном ¦ ¦ L---- ¦ ¦ коде ¦ ¦ ¦ L----------- ¦ ¦ ---- ¦ L------+ / ¦<----- L----

Каждый оператор inline состоит из необязательного специфика- тора размера, < или >, и константы или идентификатора переменой, за которой следуют ноль или более спецификаторов смещения (см. описанный далее синтаксис). Спецификатор смещения состоит из + или -, за которым следует константа.

------------ запись во --T-------------------->¦ константа +---------------> встроенном ¦ ---- ^ L------------ ^ машинном +-->¦ < +------+ ¦ коде ¦ L---- ¦ ¦ ¦ ---- ¦ ¦ +-->¦ > +------- ¦ ¦ L---- ¦ ¦ ---------------- ¦ L->¦ идентификатор +-T--------------------- ¦ переменной ¦ ¦ ^ L---------------- ¦ ¦ ------ L--------- ¦ ----- ---------- ¦ L----->¦знак+-->¦константа¦--T----- ^ L----- L---------- ¦ L--------------------------

Каждая запись inline порождает 1 байт или одно слово кода. Значения вычисляется, исходя из значения первой константы или смещения идентификатора переменной, к которому добавляется или из которого вычитается значение каждой из последующих констант.

Если запись в машинном коде состоит только из констант и, если ее значение лежит в 8-битовом диапазоне (0..255), то она по- рождает один байт кода. Если значение выходит за границу 8-бито- вого диапазона или если запись inline ссылается на переменную, то генерируется одно слово кода (младший байт следует первым).

Операции < и > могут использоваться для отмены автоматичес- кого выбора размера, который был описан ранее. Если оператор inline начинается с операции <, то в код включается только млад- ший значащий байт значения, даже если это 16-битовое значение. Если оператор inline начинается с операции >, то в код включается всегда слово, даже если старший значащий байт равен 0. Например, оператор:




Начало  Назад  Вперед



Книжный магазин