TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

Операции в выражениях 

             Встроенный ассемблер  предусматривает  множество   операций,
        подразделяемых по старшинству на 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 (исключающее ИЛИ). Оба выраже-│
        │      │ ния должны представлять собой непосредственные абсолют-│
        │      │ ные значения.  Результатом будет непосредственное абсо-│
        │      │ лютное значение.                                       │
        └──────┴────────────────────────────────────────────────────────┘


Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz