У меня есть% ecx, содержащий количество мест, в которых я хочу, чтобы значение% esi было сдвинуто влево, но, насколько я понимаю, источник shl должен быть немедленным значением.Перемещение битов по значению в регистре
Может кто-нибудь помочь мне понять, как я буду перемещаться по значению% ecx? Я осмотрелся и видел, как люди рекомендуют использовать регистр CL. Но есть ли альтернатива?
спасибо.
... или замаскировано на 63 для 64-разрядных регистров – Anty
Высокие разряды могут иметь значение для программы, и в этом случае следует обратить особое внимание на результат. Вы можете ожидать, что '1 << 33' будет' 0' не '2'. – Jester
@Jester Это правильно. Однако, поскольку shll маскирует операнд сдвига с 31, не имеет значения, установлены ли какие-либо высокие биты в ecx, поскольку они все же маскируются. – fuz