Поворот и Поворот через использование переноса
Я проектирую процессор и создал список часто используемых операций ALU. Поворот и вращение с помощью переноса встречаются практически во всех процессорах, и я хотел бы знать, почему. Помимо неясного упоминания о криптографии, я не вижу, что они могут предложить, чего не могут сделать битовые сдвиги.
Кроме того, есть ли причина для реализации 8- и 16-битной версии этих операций или только 32-битной? Спасибо за любую помощь.
1 ответ
На самом деле, битовые сдвиги в некоторых случаях являются неловкой заменой вращений.
Я не знаю о криптографии, но много занимаюсь аппаратным программированием.
Многие устройства, например, получают свои данные по кусочкам. Если вы можете повернуть, легче подготовить данные для этого. Если у вас есть только битовый сдвиг, вы вынуждены сделать резервную копию значения в дополнительной переменной / регистре.
Таким образом, вращение на самом деле очень полезно, особенно в контроллерах с небольшим объемом памяти, где учитывается каждый байт. Я считаю, что это причина, почему каждый процессор вращается. Надеюсь это поможет.