**Регистр** - это функциональное устройство, предназначенное для записи, хранения и преобразования двоичной информации.  
Основой любого регистра, является цепочка триггеров, обычно JK- или D-типов. Число триггеров в цепочке определяется разрядностью регистра.  
Процедура занесения информации в регистр называется вводом или записью. А извлечение - выводом или считыванием.  
Одиночный триггер, способный хранить один бит информации, можно считать одноразрядным регистром.  
Регистры делятся на:
- Регистры хранения
- Регистры сдвига
- Специальные регистры:
	- Регистры последовательных приближений, которые применяются в АЦП (аналогово-цифровых преобразователях)
	- Многоцелевые регистры, используемые в качестве СОЗУ (сверхоперативное запоминающее устройство)
## Регистры хранения (параллельные регистры)
Регистры хранения называются параллельными, так как информация во все триггеры заносится одновременно параллельным входом, по сигналу на общем входе синхронизации. Занесение в регистр новой информации не требует предварительного обнуления, так как с приходом каждого синхроимпульса информация обновляется. Некоторые регистры имеют дополнительные стробирующие входы, позволяющие хранить без изменения записанное число в течение нескольких тактов синхроимпульса.  
Схема:  
![Схема регистра хранения](../Pictures/05_01.%20Схема%20регистра%20хранения.png)  
УГО:  
![УГО регистра хранения](../Pictures/05_02.%20УГО%20регистра%20хранения.png)  
При подаче на вход E0 логической 1, разрешается вывод записанного в регистр числа через ключи, собранные на логических элементах И на 2 входа В отсутствии разрешающего сигнала, на всех выходах регистра будет 0.  
## Регистры сдвига (последовательные регистры)
Схема:  
![Схема регистра сдвига](../Pictures/05_03.%20Схема%20регистра%20сдвига.png)  
УГО:  
![УГО регистра сдвига](../Pictures/05_04.%20УГО%20регистра%20сдвига.png)  
В регистрах сдвига триггеры расположены цепочкой, причём прямой выход одного триггера соединён с информационным входом другого триггера. Запись информации последовательным ходом осуществляется по информационному входу D первого триггера. Перед занесением информации регистр очищается с помощью команды сброса R. Делаются из DRS-триггеров.  
Предположим, в регистр нужно поместить число `0b1101`. Для хранения старшего вида используется триггер Т4, для младшего - Т1. На вход D подаётся логическая 1, и после первого тактового импульса C в Т1 запишется единица, в остальных триггерах будут нули. После второго тактового импульса в Т1 снова запишется единица, а в Т2 перепишется единица с выхода Т1. Затем, на вход D устанавливаем ноль, и после третьего тактового импульса в Т1 запишется 0, а две ранее записанные единицы окажутся в Т2 и Т3. На вход D вновь подаётся единица, и с четвёртым тактовым импульсом эта единица запишется в Т1, а вся ранее записанная информация сдвинется в Т2, Т3, Т4. Теперь записанное в регистр 4-значное число может быть считано из регистра в параллельном входе с выходов Q1, Q2, Q3, Q4. Если работа тактового генератора непрерывна, то начиная с пятого тактового импульса из Т4 будет производиться поразрядный вывод записанного числа.  
Регистры сдвига составляют основу ОЗУ с последовательным доступом, в котором выбор нужной ячейки памяти осуществляют последовательным перебором адресов в порядке их возрастания или убывания.  
В регистре сдвига влево информация поступает в старший разряд и с каждым тактовым импульсом сдвигается в сторону младших разрядов.  
Сдвигающие регистры позволяют преобразовывать последовательный код в параллельный и наоборот. Обычно для этого используют комбинированные регистры:
- Параллельно-последовательный регистр (ввод параллельно, вывод - последовательно, у них несколько информационных входов и один выход)
- Последовательно-параллельный регистр (ввод последовательно, вывод - параллельно, один вход на несколько выходов) 
  
Последовательные регистры имеют два недостатка:
1. Возможен только побитовый ввод в каждом такте
2. При каждом сдвиге теряется крайний бит 
  
Эти недостатки исправлены в **кольцевых регистрах**. Выход последнего триггера соединён со входом первого, поэтому информация циркулирует по кольцу. Предварительная запись информации может быть осуществлена по входам S, сброс - по входу R.  
![Схема кольцевого регистра сдвига](../Pictures/05_05.%20Схема%20кольцевого%20регистра%20сдвига.png)  
Существуют реверсивные регистры, позволяющие выбирать направление сдвига. В таких регистрах для коммутации входов и выходов применяются мультиплексоры. Такой регистр допускает либо параллельную загрузку по входам $D_n$ по срезу синхроимпульса C2, либо последовательную загрузку по входу D по срезу синхроимпульса C1. Сигналом с управляющего входа V можно изменять направление сдвига при последовательном вводе информации.  
![Схема реверсивного регистра сдвига](../Pictures/05_06.%20Схема%20реверсивного%20регистра%20сдвига.png)  
## Универсальные регистры
Для коммутации входов и выходов используется мультиплексирование. Выбор режима работы задаётся сигналами PL, SL, SR. При поступлении 1 на PL разрешается параллельная загрузка всех триггеров по входам $D_i$. При последовательном режиме информационный вход $D_i$ присоединяется либо ко входу $i-1$-го триггера (сдвиг вправо), либо ко входу $i+1$-го триггера (сдвиг влево). Для младшего разряда вход $i-1$ является входом DSR всего регистра, а вход $i+1$ (самого старшего разряда) - входом DSL. Выход $Q_i$ D-триггера подключен к соответствующим входам мультиплексоров в соседних разрядах. Общие шины C, R служат для синхронизации и асинхронного сброса всех ячеек регистра.