Выполнение в ЭВМ логических операций

Помимо арифметических операций, операционный блок любой вычислительной машины предполагает выполнение основных логических операций и сдвигов. Чаще всего такие операции реализуются дополнительными схемами, входящими в состав целочисленных операционных блоков. К базовым логическим операциям относятся: логическое отрицание (НЕ), или инверсия; логическое сложение (ИЛИ), или дизъюнкция; логическое умножение (И), или конъюнкция; сложение по модулю два (исключающее ИЛИ).

Логические операции выполняются в ЭВМ над логическими переменными'.

X = Х^ Хд_2 ••• X! Х0 — логическая переменная X,

Y = Y,,.! Уц_2 ... У) У0 — логическая переменная У,

где Xj, Yj е {0, 1).

Логическая переменная, как и другой машинный элемент информации, представляется в виде двоичного слова.

Конъюнкция (Z = X&Y)

Эта операция реализуется путем выполнения поразрядных операций конъюнкции Z; = Х;; в соответствии с табл. 4.13.

Таблица 4.13

Конъюнкция

X,

У

Z,

0

0

0

0

1

0

1

0

0

1

1

1

Пример.

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

Пример. Выделить модуль переменной X.

Частным случаем конъюнкции является операция тестирования X&Y, при выполнении которой устанавливаются только признаки результата операции конъюнкции без формирования его значения.

Дизъюнкция (Z = X vY)

Операция реализуется путем выполнения поразрядных операций дизъюнкции Zj = X; v Y; в соответствии с табл. 4.14 и может быть использована для образования какого-либо нового слова из частей слова.

Таблица 4.14

Дизъюнкции

X;

Y.

Z,

0

0

0

0

1

1

1

0

1

1

1

1

Сложение по модулю два (исключающее или)(Z = X ф Y)

Пример.

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

Таблица 4.15

Сложение по модулю два

X,

Y,

z(

0

0

0

0

1

1

1

0

1

1

1

0

Пример.

Инверсия (отрицание) — ( X = X )

Пример.

Х = 00000110, X = 11111001.

Сравнение (X - Y)

При сравнении формируются только признаки результата вычитания X - Y, а сам результат нигде не фиксируется.

Сдвиги двоичных слов

Различают следующие шипы сдвигов: логические, арифметические и циклические.

При логическом сдвиге слова влево (соответствует умножению на два: А <— 2А) содержимое всех его бит сдвигается влево на 1 разряд. Освобождающийся разряд заполняется нулем, а выдвинутый бит чаще всего размещается в триггере переноса С. Схема сдвига для 8-разряд- ного регистра-аккумулятора приведена на рис. 4.68.

Логический сдвиг влево на один разряд

Рис. 4.68. Логический сдвиг влево на один разряд

Логический сдвиг вправо на один разряд

Рис. 4.69. Логический сдвиг вправо на один разряд

Пример. Сдвинуть влево на 1 разряд X = 3.

С | 0 | 0000 0011 ДосдвигаХ = 3

С | 0 | 0000 0110 После сдвига X = 6

При логическом сдвиге вправо (соответствует делению на два: А <— <— А/2) содержимое всех его бит сдвигается вправо на 1 разряд (рис. 4.69).

Арифметический сдвиг влево полностью совпадает с логическим сдвигом влево (при представлении числа в ДК). Если число задано в ПК, то старший (знаковый) разряд не изменяется:

до сдвига: [Х]пк = 1000100 (-4);

после сдвига: [Х]пк = 1001000 (-8).

При арифметическом сдвиге вправо содержимое старшего (знакового) разряда не изменяется (рис. 4.70).

Арифметический сдвиг вправо на один разряд

Рис. 4.70. Арифметический сдвиг вправо на один разряд

При циклическом сдвиге слова вправо выдвинутый бит размещают в триггере переноса С, а в освобождающийся разряд А7 размещают бит из триггера переноса (рис. 4.71).

Циклический сдвиг на один разряд

Рис. 4.71. Циклический сдвиг на один разряд

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

.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >