Операция сдвига

1) Логический сдвиг кода. Все разряды кода А участвуют в операции одинаково. Освобождающиеся разряды обычно заполняются нулями. Разряды, выдвигаемые за разрядную сетку, теряются. В отличие от микрооперации сдвига в операции сдвига задается константа сдвига.

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

L3 (011110) = 110000

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

L3 цикл (011110) = 110011

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

Пример:

R3 ар (1 001100) = 1 111001;

L3 ар (1 001100) = 1 100 000

Арифметический сдвиг на один разряд используется в микропрограммах умножения двоичных чисел с фиксированной точкой в дополнительных кодах (сдвиг вправо) и деления двоичных чисел с фиксированной точкой (сдвиг влево).

Предлагаю ознакомиться с аналогичными статьями: