Здравствуйте, объясните что такое регистр и как работают сдвиги?
Регистр это компонент процессора. Есть регистры для арифметических действий, для адресации, для управления различными компонентами.
Команда сдвига выполняет сдвиг значения в регистре либо влево либо вправо, на нужное количество двоичных разрядов. При циклическом сдвиге выдвигаемые за пределы регистра биты возвращаются в него с другой стороны. При обычном - теряются. При логическом сдвиге вправо освобождающиеся справа разряды заполняются нулями. При арифметическом они заполняются знаковым разрядом.
в google поискать не судьба
Регистр процессора — блок ячеек памяти, образующий сверхбыструю оперативную память (СОЗУ) внутри процессора; используется самим процессором и большой частью недоступен программисту: например, при выборке из памяти очередной команды она помещается в регистр команд (англ.), к которому программист обратиться не может.
xor al,al //обнуляем регистр al ре
inc al // al содержит 00000001
shl al,1 сдвигаем биты на один влево al == 00000010
shr al,1 вправо 00000001
еще есть циклический сдвиг
rol и ror
https://ru.wikipedia.org/wiki/Регистр_процессора
Начиная с модели 80386 процессоры Intel предоставляют 16 основных регистров для пользовательских программ и ещё 11 регистров для работы с мультимедийными приложениями (MMX) и числами с плавающей точкой (FPU/NPX). Все команды так или иначе изменяют содержимое регистров. Как уже говорилось, обращаться к регистрам быстрее и удобнее, чем к памяти. Поэтому при программировании на языке Ассемблера регистры используются очень широко.
http://av-assembler.ru/asm/afd/assembler-for-dummy.htm