|
||||
|
55. Логические команды Согласно теории, над высказываниями (над битами) могут выполняться следующие логические операции. 1. Отрицание (логическое НЕ) – логическая операция над одним операндом, результатом которой является величина, обратная значению исходного операнда. 2. Логическое сложение (логическое включающее ИЛИ) – логическая операция над двумя операндами, результатом которой является «истина» (1), если один или оба операнда имеют значение «истина» (1), и «ложь» (0), если оба операнда имеют значение «ложь» (0). 3. Логическое умножение (логическое И) – логическая операция над двумя операндами, результатом которой является «истина» (1) только в том случае, если оба операнда имеют значение «истина» (1). Во всех остальных случаях значение операции «ложь» (0). 4. Логическое исключающее сложение (логическое исключающее ИЛИ) – логическая операция над двумя операндами, результатом которой является «истина» (1), если только один из двух операндов имеет значение «истина» (1), и ложь (0), если оба операнда имеют значение «ложь» (0) или «истина» (1). 4. Логическое исключающее сложение (логическое исключающее ИЛИ) – логическая операция над двумя операндами, результатом которой является «истина» (1), если только один из двух операндов имеет значение «истина» (1), и ложь (0), если оба операнда имеют значение «ложь» (0) или «истина» (1). Cледующий набор команд, поддерживающих работу с логическими данными: 1) and операнд_1, операнд_2 – операция логического умножения; 2) or операнд_1, операнд_2 – операция логического сложения; 3) xor операнд_1, операнд_2 – операция логического исключающего сложения; 4) test операнд_1, операнд_2 – операция «проверить» (способом логического умножения) 5) not операнд – операция логического отрицания. а) для установки определенных разрядов (бит) в 1 применяется команда or операнд_1, операнд_2; б) для сброса определенных разрядов (бит) в 0 применяется команда and операнд_1, операнд_2; в) команда xor операнд_1, операнд_2 применяется: – для выяснения того, какие биты в операнд_1 и операнд_2 различаются; – для инвертирования состояния заданных бит в операнд_1. Для проверки состояния заданных бит применяется команда test операнд_1, операнд_2 (проверить операнд_1). Результатом команды является установка значения флага нуля zf: 1) если zf = 0, то в результате логического умножения получился нулевой результат, т. е. один единичный бит маски, который не совпал с соответствующим единичным битом операнд1; 2) если zf = 1, то в результате логического умножения получился ненулевой результат, т. е. хотя бы один единичный бит маски совпалс соответствующим единичным битом операнд1. Все команды сдвига перемещают биты в поле операнда влево или вправо в зависимости от кода операции. Все команды сдвига имеют одинаковую структуру – коп операнд, счетчиксдвигов. |
|
||
Главная | Контакты | Нашёл ошибку | Прислать материал | Добавить в избранное |
||||
|