Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ЭВМ и ПУ.doc
Скачиваний:
64
Добавлен:
16.03.2015
Размер:
1.16 Mб
Скачать

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

Перечень логических команд и их описание приведено в таблице 2.10.

Таблица 2.10. Перечень логических команд.

Мнемоника

Описание

Булевы команды

AND (и)

приемник и источник приемник

TEST

приемник и источник 

OR (или)

приемник или источник приемник

XOR (исключающее или)

приемник источникприемник

NOT (инверсия)

не приемник приемник

Команды

SHL (логический сдвиг влево)

CF приемник0

сдвигов

SHR (логический сдвиг вправо)

0 приемникCF

SAL (арифметический сдвиг влево)

CF приемник0

SAR (арифметический сдвиг вправо)

знак приемникCF

Команды циклических

ROL (циклический сдвиг влево)

сдвигов

ROR (циклический сдвиг вправо)

RCL (циклический сдвиг влево через перенос)

RCR (циклический сдвиг вправо через перенос)

Начиная с м/п 80386 дополнительные команды:

Команды двойного сдвига

SHLD (сдвиг с двойной точностью влево)

SHRD (сдвиг с двойной точностью вправо)

Команды работы с двоичными цепочками

BT (поиск бита и запись его в CF)

BTC (поиск и инвертирование бита в цепочке)

BTS (поиск и установка бита в)

BTR (поиск и сброс бита )

BSF (сканирование цепочки битов вперед)

BSR (сканирование цепочки битов назад)

2.5.3.1.Булевы команды.

К булевым командам относятся команды AND, OR, XOR, NOT, TEST.

Команды AND, OR, XOR выполняют логическую функцию над соответствующими битами источника и приёмника, помещая результат в приёмник. Все команды двухоперандные , разрешённые форматы операндов такие же, как у команд ADD, ADC, SUB, SBB.

Команда NOT - однооперандная, она выполняет инверсию каждого бита операнда и помещает результат в то же место. Формат команды такой же, как у команд DEC, NEG, INC.

Команда AND удобна для обнуления указанных разрядов числа: один операнд определяет разряды, а второй число. Например: обнуление старших 4-х битов в байте с именем MEMB (AND MEMB, 00001111B).

Команда OR используется для установки указанных битов, а команда XOR используется для инвертирования указанных разрядов в числе. XOR позволяет также сбросить содержимое регистра в нуль (регистр должен быть и источником и приёмником).

Команда TEST - двухоперандная, формат совпадает с командами ADD, ADC, SUB, SBB. Объединяет возможности команд AND и CMP, Как AND она выполняет объединение по “и” соответствующих бит операндов, как CMP она сохраняет только состояния флагов, а не результат. Удобна для проверки того, есть ли в указанных разрядах числа хотя бы одна 1. Один операнд определяет разряды, второй - число. Если результат нера­вен 0, то, по крайней мере, один разряд равен 1. Все логические команды кроме NOT изменяют флаги SF, ZF, PF. Флаг AF - не определён, а CF = 0 и OF = 0, DF, IF, TF - не изменяются.