Поворот и поворот через использование переноса

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

Кроме того, есть ли смысл реализовывать 8- и 16-битные версии этих операций или только 32-битные? Спасибо за любую помощь.


person tayfun2150    schedule 13.10.2014    source источник
comment
возможный дубликат Какова цель инструкций по повороту (ROL, RCL на x86)?   -  person James    schedule 14.10.2014


Ответы (1)


На самом деле битовые сдвиги в некоторых случаях являются неудобной заменой вращения.

Я ничего не знаю о криптографии, но я много занимаюсь аппаратным программированием.

Многие устройства, например, получают свои данные по кусочкам. Если есть возможность ротации, легче подготовить данные для этого. Если у вас есть только битовый сдвиг, вы вынуждены сделать резервную копию значения в дополнительной переменной/регистре.

Таким образом, поворот на самом деле очень полезен, особенно в контроллерах с небольшим объемом памяти, где важен каждый байт. Я считаю, что это причина, по которой каждый процессор предлагает ротацию. Надеюсь это поможет.

person dumbo    schedule 13.10.2014