Насколько я понимаю, если вы просто сдвигаетесь, биты будут падать, а нули будут заполнять пустые позиции битов.Если вы вращаетесь, биты никогда не могут упасть и вместо этого прикрепляются к другому концу.Вот вращение битов ABCD на одну битовую позицию, дважды: ABCD DABC CDAB.Вы можете видеть, что, если элемент управления застрял во вращении, биты будут продолжать вращаться.Вот смещение позиции одного бита три раза: ABCD 0ABC 00AB 000A, и вы можете видеть, что этот случай в конечном итоге обнулится, если управление не будет изменено.Что касается использования D-регистра, вот мое предположение: регистры являются элементами памяти и должны хранить битовые значения, поэтому D-регистр - это регистр, состоящий из D-триггеров для хранения его элементов, и вы используете D-триггеры, поскольку Dтриггеры - это устройства, запускаемые по краям.Вы вполне могли бы иметь регистр JK, который использует JK-триггеры для хранения элементов памяти.Надеюсь это поможет.