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

Арифметические операции

Наименование операции

Описание

Сложение

Вычисление суммы двух операндов

Вычитание

Вычисление разности двух операндов

Умножение

Вычисление произведения двух операндов

Деление

Вычисление частного от деления двух операндов

Вычисление модуля

Замена операнда его абсолютным значением (модулем)

Отрицание

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

Приращение

Увеличение значения операнда на 1

Отрицательное приращение (операция декремента)

Уменьшение значения операнда на 1

В большинстве вычислительных систем на аппаратном уровне выполняются четыре основных арифметических операции — сложение, вычитание, умножение и деление — над целыми числами (числами в формате с фиксированной точкой). В универсальных процессорах в состав набора команд включаются и аналогичные команды для работы с числами в формате с плавающей точкой и числами в двоично-десятичном представлении.

При выполнении команд арифметических операций над операндами, размещенными в памяти, процессору приходится повторять те же действия, что и при пересылке данных. И конечно же, в процессе выполнения арифметических команд самое непосредственное участие принимает АЛУ.

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

Наименование операции

Описание

И

Поразрядная булева операция конъюнкции двух операндов

ИЛИ

Поразрядная булева операция дизъюнкции двух операндов

НЕ

Поразрядная булева операция инверсии источника (поразрядное инвертирование)

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

Поразрядная булева операция неравнозначности (суммирования по модулю 2) двух операндов

Проверка

Проверка выполнения определенного условия и установка в соответствии с результатом значений флагов

Сравнение

Логическое или арифметическое сравнение значений двух операндов; установка одного или нескольких флагов в соответствии с результатом

Установка управляющих переменных

Класс машинных команд, устанавливающих определенный режим функционирования процессора с целью защиты, обработки прерывания, управления таймером и т.п.

Сдвиг

Поразрядный сдвиг операнда вправо или влево с заполнением освобождающихся разрядов определенной константой

Циклический сдвиг

Поразрядный сдвиг операнда вправо или влево с заполнением освобождающихся позиций значениями разрядов, "выталкиваемых" с противоположного конца

В большинстве процессоров поддерживается довольно обширный набор логических операций над отдельными битами слова или другого адресуемого элемента данных. В качестве базовых при этом используются операции булевой алгебры.

Помимо поразрядных операций булевой алгебры в большинстве процессоров поддерживаются операции сдвигов. Наиболее распространенные операции этой категории представлены на рис. 1. При выполнении операции логического сдвига процесс перемещает содержимое элемента данных в разрядной сетке влево или вправо, причем "выталкиваемые" с одного конца разряды теряются, а позиция, освободившаяся на другом конце разрядной сетки, заполняется кодом 0. Операция логического сдвига используется, в основном, для выделения "в чистом виде" содержимого определенного поля внутри слова.

Рис. 1. Варианты операций сдвига: а — логический сдвиг вправо; б — логический сдвиг влево; в — арифметический сдвиг вправо; г — арифметический сдвиг влево; д — циклический сдвиг вправо; е — циклический сдвиг влево.

При выполнении операции арифметического сдвига операнд интерпретируется как целое число со знаком, а потому знаковый разряд не сдвигается. При сдвиге вправо знаковый разряд дублируется в освобождающемся старшем значащем разряде. С помощью операции арифметического сдвига можно ускорить выполнение арифметических операций умножения и деления при определенных значениях операндов. В частности, сдвиг влево на несколько разрядов числа в дополнительном коде есть не что иное, как умножение на соответствующую степень числа 2, а сдвиг вправо — деление на степень числа 2. Естественно, что при умножении нужно следить за тем, чтобы не возникло переполнение, а при делении — за тем, чтобы не была утеряна значимость.

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