TURBO PASCAL |
Новости
|
Операции в выраженияхВстроенный ассемблер предусматривает множество операций, подразделяемых по старшинству на 12 классов. В Таблице 24.5 пере- числены операции, использующиеся в выражениях встроенного ассемб- лера в порядке убывания их старшинства: Встроенные операции ассемблера Таблица 24.5 ┌──────────────────────────────┬────────────────────────────────┐ │ Операция │ Комментарий │ ├──────────────────────────────┼────────────────────────────────┤ │ & │ Операция переопределения иден-│ │ │ тификатора. │ ├──────────────────────────────┼────────────────────────────────┤ │ (), [], * │ Выбор элемента структуры. │ ├──────────────────────────────┼────────────────────────────────┤ │ HIGH, LOW │ Унарные операции. │ │ +, - │ │ ├──────────────────────────────┼────────────────────────────────┤ │ : │ Операция переопределения сег-│ │ │ мента. │ │ OFFSET, SEG, TYPE, PTR, │ │ │ *, /, MOD, SHL, SHR │ │ ├──────────────────────────────┼────────────────────────────────┤ │ +, - │ Бинарные операции сложения/вы- │ │ │ читания. │ ├──────────────────────────────┼────────────────────────────────┤ │ NOT, AND, OR, XOR │ Поразрядные операции. │ └──────────────────────────────┴────────────────────────────────┘ Определения операций встроенного ассемблера Таблица 24.6 ┌──────┬────────────────────────────────────────────────────────┐ │Опер. │ Описание │ ├──────┼────────────────────────────────────────────────────────┤ │ & │ Переопределение идентификатора. Идентификатор, непос-│ │ │ редственно следующий за амперсантом, интерпретируется,│ │ │ как идентификатор, определяемый пользователем, даже ес-│ │ │ ли он соответствует зарезервированному слову встроенно-│ │ │ го ассемблера. │ ├──────┼────────────────────────────────────────────────────────┤ │ (...)│ Подвыражение. Выражение в скобках полностью вычисляет-│ │ │ ся, после чего интерпретируется, как один элемент. Вы-│ │ │ ражению в скобках может предшествовать другое выраже-│ │ │ ние. Результатом в этом случае будет сумма значений│ │ │ двух выражений с типом первого выражения. │ ├──────┼────────────────────────────────────────────────────────┤ │ [...]│ Ссылка на память. Выражение в квадратных скобках пол-│ │ │ ностью вычисляется, после чего интерпретируется, как│ │ │ один элемент. Выражение в квадратных скобках может ком-│ │ │ бинироваться с регистрами BX, BP, SI, DI с помощью опе-│ │ │ рации +, что указывает на индексирование регистра ЦП.│ │ │ Выражению в квадратных скобках может предшествовать│ │ │ другое выражение. Результатом в этом случае будет сумма│ │ │ значений двух выражений с типом первого выражения. Ре-│ │ │ зультатом всегда будет ссылка на память. │ ├──────┼────────────────────────────────────────────────────────┤ │ . │ Выбор элемента структуры. Результатом будет сумма выра-│ │ │ жения перед точкой и выражения после точки с типом вы-│ │ │ ражения после точки. Идентификаторы, относящиеся к об-│ │ │ ласти действия, и указанные в выражении перед точкой│ │ │ доступны в выражении после точки. │ ├──────┼────────────────────────────────────────────────────────┤ │ HIGH │ Возвращает старшие 8 бит выражения размером в слово,│ │ │ следующего за операцией. Выражение должно представлять│ │ │ собой непосредственное абсолютное значение. │ ├──────┼────────────────────────────────────────────────────────┤ │ LOW │ Возвращает младшие 8 бит выражения размером в слово,│ │ │ следующего за операцией. Выражение должно представлять│ │ │ собой непосредственное абсолютное значение. │ ├──────┼────────────────────────────────────────────────────────┤ │ + │ Унарный плюс. Возвращает следующее за плюсом выражение│ │ │ без изменений. Выражение должно представлять собой не-│ │ │ посредственное абсолютное значение. │ ├──────┼────────────────────────────────────────────────────────┤ │ - │ Унарный минус. Возвращает следующее за минусом выраже-│ │ │ ние с обратным знаком. Выражение должно представлять│ │ │ собой непосредственное абсолютное значение. │ ├──────┼────────────────────────────────────────────────────────┤ │ : │ Переопределение сегмента. Указывает ассемблеру, что вы-│ │ │ ражение после двоеточия относится к сегменту, заданному│ │ │ именем сегментного регистра (CS, DS, SS или ES) перед│ │ │ двоеточием. Результатом является ссылка на память со│ │ │ значением выражения после двоеточия. Когда переопреде-│ │ │ ление сегмента используется в операнде инструкции, инс-│ │ │ трукции предшествует соответствующий префикс переопре-│ │ │ деления сегмента, обеспечивающий выбор указанного│ │ │ сегмента. │ ├──────┼────────────────────────────────────────────────────────┤ │OFFSET│ Возвращает смещение следующего за операцией выражения│ │ │ (младшее слово). Результатом будет непосредственное│ │ │ значение. │ ├──────┼────────────────────────────────────────────────────────┤ │ SEG │ Возвращает сегмент следующего за операцией выражения│ │ │ (старшее слово). Результатом будет непосредственное│ │ │ значение. │ ├──────┼────────────────────────────────────────────────────────┤ │ TYPE │ Возвращает тип (размер в байтах) следующего за операци-│ │ │ ей выражения. Типом непосредственного значения будет 0.│ ├──────┼────────────────────────────────────────────────────────┤ │ PTR │ Операция назначения типа. Результатом будет ссылка на│ │ │ память со значением выражения, следующего за операцией│ │ │ и типом выражения перед операцией. │ ├──────┼────────────────────────────────────────────────────────┤ │ * │ Умножение. Оба выражения должны представлять собой не-│ │ │ посредственные абсолютные значения. Результатом будет│ │ │ непосредственное абсолютное значение. │ ├──────┼────────────────────────────────────────────────────────┤ │ / │ Целочисленное деление. Оба выражения должны представ-│ │ │ лять собой непосредственные абсолютные значения. Ре-│ │ │ зультатом будет непосредственное абсолютное значение. │ ├──────┼────────────────────────────────────────────────────────┤ │ MOD │ Остаток целочисленного деления. Оба выражения должны│ │ │ представлять собой непосредственные абсолютные значе-│ │ │ ния. Результатом будет непосредственное абсолютное зна-│ │ │ чение. │ ├──────┼────────────────────────────────────────────────────────┤ │ SHL │ Логический сдвиг влево. Оба выражения должны представ-│ │ │ лять собой непосредственные абсолютные значения. Ре-│ │ │ зультатом будет непосредственное абсолютное значение. │ ├──────┼────────────────────────────────────────────────────────┤ │ SHR │ Логический сдвиг вправо. Оба выражения должны представ-│ │ │ лять собой непосредственные абсолютные значения. Ре-│ │ │ зультатом будет непосредственное абсолютное значение. │ ├──────┼────────────────────────────────────────────────────────┤ │ + │ Сложение. Выражения могут представлять собой непосредс-│ │ │ твенные абсолютные значения или ссылки на память, но│ │ │ перемещаемым значением может быть только одно выраже-│ │ │ ние. Если одно из выражений - перемещаемое значение, то│ │ │ результатом также будет перемещаемое значение. Если од-│ │ │ но из выражений - ссылка на память, то результатом так-│ │ │ же будет ссылка на память. │ ├──────┼────────────────────────────────────────────────────────┤ │ - │ Вычитание. Первое выражение может иметь любой класс, а│ │ │ второе выражение должно быть непосредственным абсолют-│ │ │ ным выражением. Результат имеет тот же тип, что и пер-│ │ │ вое выражение. │ ├──────┼────────────────────────────────────────────────────────┤ │ NOT │ Поразрядное отрицание. Выражение должно представлять│ │ │ собой непосредственные абсолютные значения. Результатом│ │ │ будет непосредственное абсолютное значение. │ ├──────┼────────────────────────────────────────────────────────┤ │ AND │ Поразрядная операция AND (И). Оба выражения должны│ │ │ представлять собой непосредственные абсолютные значе-│ │ │ ния. Результатом будет непосредственное абсолютное зна-│ │ │ чение. │ ├──────┼────────────────────────────────────────────────────────┤ │ OR │ Поразрядная операция OR (ИЛИ). Оба выражения должны│ │ │ представлять собой непосредственные абсолютные значе-│ │ │ ния. Результатом будет непосредственное абсолютное зна-│ │ │ чение. │ ├──────┼────────────────────────────────────────────────────────┤ │ XOR │ Поразрядная операция XOR (исключающее ИЛИ). Оба выраже-│ │ │ ния должны представлять собой непосредственные абсолют-│ │ │ ные значения. Результатом будет непосредственное абсо-│ │ │ лютное значение. │ └──────┴────────────────────────────────────────────────────────┘ |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |