Другие языки программирования и технологии

Здравствуйте, объясните что такое регистр и как работают сдвиги?

Регистр это компонент процессора. Есть регистры для арифметических действий, для адресации, для управления различными компонентами.
Команда сдвига выполняет сдвиг значения в регистре либо влево либо вправо, на нужное количество двоичных разрядов. При циклическом сдвиге выдвигаемые за пределы регистра биты возвращаются в него с другой стороны. При обычном - теряются. При логическом сдвиге вправо освобождающиеся справа разряды заполняются нулями. При арифметическом они заполняются знаковым разрядом.
Юлиан Julian
Юлиан Julian
17 969
Лучший ответ
Александр Россошанский у меня такая ситуация есть двухканальное устройство в режиме чтения:
когда только на 1-й канал приходят данные, я делаю запрос регистра 00h, оно мне отвечает АА02020200
когда на 2 канала приходят данные одновременно, я делаю запрос регистра 02h, оно мне отвечает таким же кодом АА02020200
в 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