Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Эрни Каспер Программирование на языке Ассемблер...doc
Скачиваний:
120
Добавлен:
09.11.2019
Размер:
954.88 Кб
Скачать

2.4.Использование выражений в операндах

Для удобства программиста в трансляторе имеется возможность вычисления числовых значений операндов, записываемых в виде выра­жений. Следует помнить, что эти выражения вычисляются только на этапе трансляции. В представленном ниже перечне для каждой вычисли­тельной операции указано символическое обозначение, уровень приори­тета и назначение. Ограничителями буквенных обозначений вычис­лительных операций являются точки. Операции, имеющие наивысший уровень приоритета, являются унарными (работают с одним аргументом).

Операция

Приоритет

Назначение

+

7

Подтверждение знака операнда

-

7

Изменение знака на противополный

.NOT.

7

Поразрядная инверсия

>

7

Выделение старшего байта слова

<

7

Выделение младшего байта слова

* *

6

Возведение в степень (положительные числа)

*

5

Умножение положительных чисел

/

5

Вычисление частного от деления положительных чисел

.MOD.

5

Вычисление остатка от деления положительных чисел

.SHR.

5

Сдвиг двоичного кода вправо

.SHL.

5

Сдвиг двоичного кода влево

+

4

Сложение

-

4

Вычитание

.AND.

3

Поразрядное логическое И

.OR.

2

Поразрядное логическое ИЛИ

.XOR.

2

Поразрядное логическое ИСКЛЮЧАЮЩЕЕ ИЛИ

При выполнении вычислительных операций наивысший приоритет имеют круглые скобки. Вычисления осуществляются при помощи 80-разрядных двоичных целых чисел, за исключением операций возведе­ния в степень, в которых используется 8-разрядное значение показателя степени. Однако в качестве операндов используется целая часть выражения (за исключением форматов FLOAT и DOUBLE) в двоичном представле­нии с ограниченным количеством разрядов (8 — для байта и 16 — для слова). При возведении в степень первым операндом является основание, а вторым — показатель степени. При сдвиге первым операндом является величина сдвига, а вторым - - сдвигаемый код. Освобождаемые при сдвиге разряды кода заполняются нулями.

Уровень приоритета 1 (самый низкий) имеют операции сравнения числовых значений, результатом которых является логическое значение. Истинное значение представляется набором единиц во всех разрядах байта, а ложное - набором нулей. В представленном далее перечне приводятся операции сравнения периода ассемблирования. Приведенные в перечне высказывания являются условиями истинности выражения с соответствующей операцией сравнения.

Операция

Приоритет

Условие истинности

.EQ.

1

первое число равно второму

.GT.

1

первое число больше второго

.LT.

1

первое число меньше второго

.UGT.

1

первое число выше второго

.ULT.

1

первое число ниже второго

При сравнении чисел следует учитывать, что для заведомо положитель­ных чисел и для чисел со знаком используется разное кодирование. Поэтому для сравнения чисел со знаком должны использоваться 2-я и 3-я операции, а для сравнения заведомо положительных чисел — 4-я и 5-я.