Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прогр_на_ассембл_для_WINLOWS.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
908 Кб
Скачать
☆

2.7.2. Логические операции

Знаки логических операции имеют те же имена, что и соответствующие команды процессора. Разница заключается в том, что логические операции выполняются на стадии трансляции, а команды - при исполнении программы. Три из логических операций двуместные, и включающие их выражения имеют одинаковый формат;

<звачение1> <знак операцию <значение2>

Таблица 3

Двуместные логические операции

Знак операции

Действие

AND

Операция И над <значением1> и <значением2>

OR

Операция ИЛИ над <значением1> и <значением2>

XOR

Операция сложения по модулю два над <значением1> и <значением2>

Одноместная операция NOT имеет формат: NOT <значение> и выполняет поразрядную инверсию <значения>.

2.7.3. Операции отношения

Операции отношения сравнивают два результата вычисления выражений и дают числовой результат. Результатом будет одно из двух чисел: 0, если отношение "ложно", и 0FFFFH, если оно "истинно". Результат дан в предположении, что тип приемника – слово.

Формат выражения: <выражение1><знак операции><выражение2>

Таблица 4

Операции отношения

Знак операции

Результат

EQ

Истинно, если значения выражений совпадают

NE

Истинно, если значения выражений не совпадают

LT

Истинно, если значение <выражения1> меньше значения <выражения2>

GT

Истинно, если значение <выражения1> больше значения <выражения2>

LE

Истинно, если значение <выражения1> меньше или равно значению <выражения2>

GE

Истинно, если значение <выражения1> больше или равно значению <выражения2>

2.7.4. Операции, возвращающие значения

Формат: $ - возвращает значение счетчика текущей ячейки.

Например: MOV BX,$-START означает, что если метка START указывает на первую команду программы, в ВХ будет занесено значение, соответствующее смещению этой команды в программном сегменте.

Формат: SEG <переменная> или SEG <метка> Возвращает сегментный адрес переменной или метки. Операция используется только в программах режима реального адреса.

Формат: OFFSET <переменная> или OFFSET <метка> Возвращает смещение переменной или метки.

Формат: LENGTH <переменная>

Возвращает длину в единицах определения переменной, при определении которой был использован оператор DUP.

Формат: TYPE <переменная> или TYPE <метка>

Для переменной операция возвращает 1, если она имеет тип байт; 2, если слово; 4, если двойное слово. Для меток она возвращает 1, если метка имеет атрибут NEAR, или 2, если атрибут FAR.

Формат: SIZE <переменная>

Возвращает размер переменной в байтах, т.е. произведение результатов выполнения операций LENGTH и TYPE.

2.7.5. Операции присваивания атрибута

Формат: <тип> PTR <имя>

Изменяет атрибут типа ВYТЕ, WORD или DWORD.

Изменение атрибута дистанции (NEAR или FAR) имеет смысл только для программ режима реального адреса.

Выражения DS:DSEG, CS:CSEG, ES:ESEG, SS:SSEG в директиве ASSUME означают, что сегменты с именами DSEG, CSEG, ESEG и SSEG будут использоваться в соответствии со связанными с ними сегментными регистрами по умолчанию.

Формат: JMP SHORT <метка>

Устанавливает атрибут метки NEAR команды JMP и указывает, что переход осуществляется не более чем на 127 байт вперед и на 128 байт назад.

Формат: HIGH <выражение>

Возвращает старший байт 16-разрядного числового значения или адресного выражения.

Формат: LOW <выражение>

Возвращает младший байт 16-разрядного числового значения или адресного выражения.