Программирование на Ассемблере


         

Выражения


Выражения строятся из:

·        констант;

·        переменных;

·        знаков арифметических операций (+, -, *, /, MOD[6]);

·        знаков отношений (LT[7]

- меньше, LE – меньше равно, EQ - равно, NE – не равно, GT - больше, GE-больше равно);

·        операций побитовой обработки (AND- логическое умножение, OR- логическое сложение, NOT - инверсия, XOR-сложение по модулю 2);

·        операций сдвига (SHL, SHR);

·        дополнительных операций, например, size – размер данного в байтах; length – коэффициент повторения для первого элемента списка, type – значение определяется типом данного и равно длине данного в байтах;

·        зарезервированных символов и идентификаторов.

В табл. 3.2 представлены зарезервированные символы и слова, а также значения, соответствующие этим словам

Таблица 3.2.  Значения для зарезервированных символов и слов

Слово (символ)

Значение

$

Текущее значение адреса

NOTHING

0

?

0

UNKNOWN

0

BYTE

1

WORD

2

DWORD

4

PWORD

6

FWORD

6

QWORD

8

TBYTE

10

PROC

4

CODEPTR

4

DATAPTR

4

 Правила вычисления выражений:

·        Все выражения вычисляются на этапе трансляции.

·        Если в выражении встречается имя переменной, подставляется ее адрес, например в участке программы

X          DD      5

DD      3

MOV   EAX, [X+4]

в регистр EAX запишется значение, которое находится по адресу X+4,

т.е. число 3.

·        При вычислении значения выражения учитывается только целая часть результата, дробная часть отбрасывается.

·        Вычисления проводятся с точностью до 232, если промежуточный или окончательный результат сложения или вычитания превосходит это значение, он усекается (отбрасываются старшие цифры результата), при этом формируется предупреждение. Если результат умножения выходит за пределы, формируется ошибка, связанная с выходом за пределы.



Содержание  Назад  Вперед