Операции сдвига в компьютерных системах - Компьютерная арифметика

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

Существует несколько вариантов сдвига:

    1. Логический сдвиг. Сдвиг, который выполняется над всеми разрядами операнда, включая знаковый. 2. Арифметический сдвиг. Не влияет на положение знака операнда.

Арифметический сдвиг двоичного операнда влево или вправо на (i) разрядов эквивалентно соответственно умножению и делению исходного операнда на (2I).

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

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

    3. Модифицированный сдвиг. Арифметический сдвиг операндов, представленных обратным или дополнительным кодом:
      - обратный код - при правом и левом сдвигах в освобождающиеся разряды регистра записываются цифры знакового разряда; - дополнительный код - при сдвиге вправо в разряды, которые освобождаются, записываются цифры знакового разряда, а при сдвиге влево в освобождающиеся разряды записываются нули.
    4. Циклический сдвиг. Операнд перемещается в регистре как в замкнутом контуре, поступая с выхода последнего разряда на вход первого.

Схемы выполнения операций сдвига приведены на рис. 4.20.

схемы выполнения операций сдвига

Рисунок 4.7 - Схемы выполнения операций сдвига

Похожие статьи




Операции сдвига в компьютерных системах - Компьютерная арифметика

Предыдущая | Следующая