Ассемблер LC3 Побитовый сдвиг вправо

Что мне нужно сделать, чтобы реализовать как побитовый сдвиг влево, так и побитовый сдвиг вправо с использованием LC -3 Сборка. По сути, каждый бит должен быть перемещен на один пробел в направлении сдвига, а ноль заполняет образовавшееся пустое пространство.

Примеры:

Сдвиг вправо:

 01001001
 00100100→

Сдвиг влево:

 01001001
←10010010

Я успешно реализовал сдвиг влево, взяв двоичную строку и добавив ее саму к себе.

Я не знаю, как выполнить сдвиг вправо. Мы будем очень признательны за любые мысли. У меня есть операции И, НЕ, ДОБАВИТЬ, операции перемещения данных, семь регистров для хранения значений и весь диапазон памяти. Мне просто нужны некоторые основные идеи, как это может быть реализовано.

Если вам нужен справочник по набору инструкций LC-3, он есть здесь.

6
задан Will Haynes 9 April 2012 в 18:22
поделиться