Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная по ЭВМ / 4-МУ_Асс-логич+сдвиг.doc
Скачиваний:
20
Добавлен:
20.02.2016
Размер:
140.29 Кб
Скачать

Практическая работа 3 логические команды и команды сдвига

    1. Цель работы

Изучение логических команд и команд сдвига: действия с отдельными битами – тестирование, установка и сбрасывание, инвертирование.

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

3.2.1 Особенности логических команд

Логические команды:

  • реализуют поразрядные операции: i-й разряд результата зависит только от i-ых разрядов операндов, при этом действие выполняется сразу над всеми разрядами операндов одновременно;

  • меняют все флаги условий, но интерес вызывает только флаг нуля ZF, (принимает значение 1, если получился нулевой результат, и равен 0 в противном случае). Что касается других флагов, то они, предназначенные для работы с числами, в логических операциях малоинформативны.

Операнды должны иметь одинаковый размер.

Краткие сведения о логических командах приведены в таблицах 3.1 и 3.2.

Таблица 3.1 – Логические команды

Синтаксис

Логика работы

AND op1, op2

op1 = op1 and op2

TEST op1, op2

op1 and op2

OR op1, op2

op1 = op1 or op2

XOR op1, op2

op1 = op1 xor op2

NOT op

op = not op

Таблица 3.2 – Таблица истинности

X

Y

X and Y

конъюнкция

X xor Y

исключающее ИЛИ

X or Y

дизъюнкция

not X

отрицание

1

1

1

0

1

0

1

0

0

1

1

0

0

1

0

1

1

1

0

0

0

0

0

1

Описа-

ние

=1, если оба =1

=1, если оба разные

=1, если хоть один =1

Команда TEST - аналог команды AND, но результат никуда не записывается, выполняется только установка флагов (наиболее информативен флаг ZF).

      1. Применение логических команд

Приводимые ниже положения иллюстрируются примерами, в которых фигурируют регистры AL и BL, имеющие следующие начальные значения:

AL = 00001101b

BL = 00001100b

Второй операнд в командах (op2) – маска (шаблон).

  1. Установка бит в 1 - команда OR (устанавливаемые биты в маске =1, остальные =0).

ПРИМЕР

Установить бит номер нуль в 1.

OR AL, 00000001b ; AL = 1101b

OR BL, 00000001b ; BL = 1101b

  1. Сброс бит в 0 – команда AND (сбрасываемые биты в маске =0, остальные =1).

ПРИМЕР

Сбросить биты номер нуль, один и три.

AND AL, 11110100b ; AL= 00000000b

  1. Инвертирование бит – команда XOR (инвертируемые биты в маске =1, остальные =0).

ПРИМЕР

Инвертировать бит номер нуль.

XOR AL, 0000 0001b ; AL:= 1100b

XOR BL, 0000 0001b ; BL:= 1101b

  1. Проверка состояния бит – команда TEST (интересующие биты в маске =1, остальные =0).

ПРИМЕР

Протестировать состояние бита номер нуль регистра AL.

TEST AL, 00000001b

Результат операции – 00000001b – никуда не записывается, но в соответствии с ним изменяется флаг: ZF=0 – косвенный результат операции. Вывод: так как ZF=0, то результат не нулевой, значит интересующий бит =1 (остальные биты результата гарантированно зануляются, так как сама операция – суть умножение, а соответствующие биты в маске заданы равными нулю).

ПРИМЕР

Протестировать состояние бита номер нуль регистра BL.

TEST BL, 00000001b ; так как ZF=1, значит результат нулевой,

; следовательно, интересующий бит =0

  1. Обнуление регистров - команда XOR

ПРИМЕР

Очистить регистр AL.

XOR АL, АL ; АL:=0

По сравнению с другими приемами - MOV АL, 0 или SUB AL, AL - выполняется быстрее.

Соседние файлы в папке Контрольная по ЭВМ