Что мне нужно сделать, это реализовать как побитовый сдвиг влево, так и побитовый сдвиг вправо, используя Сборка LC-3. По сути, каждый бит должен перемещаться на одно пространство в направлении сдвига, а ноль заполняет созданное пустое пространство.
Примеры:
Правый Shift:
01001001
00100100→
Левый "шифт:
01001001
←10010010
Я успешно реализовал сдвиг влево, взяв двоичную строку и добавив ее к себе.
Я не понимаю, как выполнить сдвиг вправо. Приветствуются любые мысли. У меня есть операции AND, NOT, ADD, операции перемещения данных, семь регистров для хранения значений и весь диапазон памяти. Мне просто нужны базовые идеи, как это можно реализовать.
Если вам нужен справочник по набору инструкций LC-3, есть один здесь.