577.30K
Категория: ПрограммированиеПрограммирование

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

1.

ЛОГИЧЕСКИЕ КОМАНДЫ

2.

ЛОГИЧЕСКИЕ КОМАНДЫ
• Осуществляют преобразования данных, в основе которых лежат
правила формальной логики.
• Формальная логика работает на уровне утверждений истинно (1) и
ложно(0).
• Минимальной единицей данных, с которой работают машинные
команды, является байт. Однако на системном уровне часто
необходимо иметь возможность работать на предельно низком уровне
– на уровне бит.

3.

Логическая
обработка
данных
Команды
Логические
(bt, btc,
btr,bts)
Обработки
бит
Сканиро
вания
бит(bsf,b
sr)
Проверки
и
модифик
ации бит
(bt,btc,btr,
bts)
Операции
Сдвига
Обычного
сдвига
(sar,sal,shl,s
hr,shld,shrd)
Логические
(bt,btc,btr,bts)
Циклическ
ого сдвига
(bt,btc,btr,b
ts)
Сдвига
(shr,shl)
Сравнения
(sar,sal,shl,s
hr,shld,shrd)

4.

ЛОГИКА
• Основное понятие – высказывание.
• Высказывание – это любое утверждение, о котором можно сказать, что
оно либо истинно, либо ложно.
• Все аппаратные компоненты компьютера построены на логических
микросхемах.
• Система представления информации в компьютере основана на
понятии бита (0 или 1).

5.

ЛОГИЧЕСКИЕ
ОПЕРАЦИИ

6.

ИНВЕРСИЯ
• логическое отрицание (НЕ)
• логическая операция над одним операндом, результатом которой
является величина, обратная значению исходного операнда
Операнд Инверсия
0
1
1
0

7.

КОНЪЮНКЦИЯ
Операнд1 Операнд2 Лог И
0
0
0
0
1
0
1
0
0
1
1
1
• логическое умножение (И)
• логическая операция над
двумя операндами,
результатом которой является
«истина» (1) только в том
случае, если оба операнда
имеют значение 1
• во всех остальных случаях
значение операции 0

8.

ДИЗЪЮНКЦИЯ
Операнд1 Операнд2 ИЛИ
0
0
0
0
1
1
1
0
1
1
1
1
• логическое сложение (ИЛИ)
• логическая операция над
двумя операндами,
результатом которой
является «истина» (1), если
один или оба операнда
имеют значение «истина» (1),
и «ложь» (0), если оба
операнда имеют значение 0.

9.

ИСКЛЮЧАЮЩЕЕ ИЛИ
логическая операция над
двумя операндами,
результатом которой
является «истина» (1), если
только один из двух
операндов имеет значение
«истина» (1), и ложь (0),
если оба операнда имеют
значение 0 или 1
Операнд1 Операнд2 Искл
0
0
0
0
1
1
1
0
1
1
1
0

10.

КОМАНДЫ С
ЛОГИЧЕСКИМИ
ДАННЫМИ

11.

КОМАНДА NOT
nоt операнд – операция логического отрицания
• выполняет поразрядное инвертирование
(замену значения на обратное) каждого бита операнда
• результат записывается на место операнда.

12.

КОМАНДА AND
аnd операнд_1, операнд_2 – операция логического умножения
• выполняет поразрядно логическую операцию И
(конъюнкцию) над битами операндов операнд_1
и операнд_2
• результат записывается на место операнд_1

13.

КОМАНДА OR
ог операнд_1, операнд_2 – операция логического сложения
• выполняет поразрядно логическую операцию
ИЛИ (дизъюнкцию) над битами операндов
операнд_1 и операнд_2
• результат записывается на место операнд_1

14.

КОМАНДА ХOR
хог операнд_1, операнд_2 – операция логического
исключающего сложения
• выполняет поразрядно логическую операцию
исключающего ИЛИ над битами операндов
операнд_1 и операнд_2
• результат записывается на место операнде

15.

КОМАНДА TEST
tеst операнд_1, операнд_2 – операция «проверить»
(способом логического умножения)
• выполняет поразрядно логическую операцию И над битами
операндов операнд_1 и операнд_2
• состояние операндов остается прежним, изменяются только
флаги zf, sf, и рf, что дает возможность анализировать
состояние отдельных битов операнда без изменения их
состояния

16.

С помощью логических команд возможно
выделение отдельных битов в операнде с целью
их установки, сброса, инвертирования или
просто проверки на определенное значение.

17.

ПРИМЕНЕНИЕ
1.
команда ог операнд_1, операнд_2
установка определенных разрядов (бит) в 1
2.
команда аnd операнд_1, операнд_2.
сброс определенных разрядов (бит) в 0
3.
команда хог операнд_1, операнд_2
• выяснить какие биты в операнд_1 и операнде различаются;
• инвертирование состояния заданных бит в операнд_1.
4. tеst операнд_1, операнд_2 (проверить операнд_1)
проверка состояния заданных бит применяется команда

18.

ПОИСК ПЕРВОГО УСТАНОВЛЕННОГО В 1 БИТ ОПЕРАНДА
1. bsf операнд_1, операнд_2 (Вit Sсаning Fоrwаrd) - сканирование битов
вперед. Команда сканирует биты операнд_2 от младшего к старшему
в поисках первого бита, установленного в 1.
• Обнаружен - в операнд_1 заносится номер этого бита в виде целочисленного
значения.
2.
Все биты операнд_2 равны 0, - флаг нуля zf =1, иначе 0.
bsr операнд_1, операнд_2 (Вit Sсаning Rеsеt) – сканирование в
обратном порядке. Команда сканируетм биты операнд_2 от старшего
к младшему в поисках первого бита, установленного в 1.
• Обнаружен - в операнд_1 заносится номер этого бита в виде целочисленного
значения.
Все биты операнд_2 равны 0 - флаг нуля zf =1, иначе 0.

19.

КОМАНДЫ СДВИГА

20.

ПРИМЕНЕНИЕ
• обеспечивают манипуляции над отдельными битами операндов,
• перемещают биты в поле операнда влево или вправо в
зависимости от кода операции.
• имеют одинаковую структуру – коп операнд, счетчик_сдвигов.
• устанавливают флаг переноса сf.

21.

СЧЕТЧИК_СДВИГОВ
• Количество сдвигаемых разрядов
• Располагается на месте второго операнда и может задаваться двумя
способами:
1) статически (задание фиксированного значения с помощью
непосредственного операнда)
2) динамически (занесение значения счетчика сдвигов в регистр сl
перед выполнением команды сдвига)

22.

ТИПЫ КОМАНД СДВИГА
команды линейного
сдвига
команды циклического
сдвига

23.

ЛИНЕЙНЫЙ СДВИГ
1.
2.
3.
очередной «выдвигаемый» бит устанавливает флаг СF;
бит, вводимый в операнд с другого конца, имеет значение 0;
при сдвиге очередного бита он переходит во флаг СF, при этом
значение предыдущего сдвинутого бита теряется!
Команды линейного сдвига делятся на:
1. команды логического линейного сдвига;
2. команды арифметического линейного сдвига.

24.

ЦИКЛИЧЕСКИЙ СДВИГ
• К командам циклического сдвига относятся команды,
сохраняющие значения сдвигаемых бит.
• Команды циклического сдвига делятся на:
1. команды простого циклического сдвига;
2. команды циклического сдвига через флаг переноса сf.

25.

ИСТОЧНИКИ
• https://ur-consul.ru/Bibli/Informatika-i-informatsionnyye-tyekhnologiikonspyekt-lyektsiyi.143.html#Q-9489-1-Logichyeskiye-komandy
• https://ur-consul.ru/Bibli/Informatika-i-informatsionnyye-tyekhnologiikonspyekt-lyektsiyi.149.html#Q-9627-Logichyeskiye-komandy
English     Русский Правила