Команды Операций Сдвига
Операция | Описание | Команда Intel 8080 | Команда Motorola 6800 |
---|---|---|---|
Арифметический сдвиг вправо | Сдвигает биты вправо, сохраняя знак числа | – | ASR |
Логический сдвиг влево | Сдвигает биты влево, вводя ноль справа | – | ASL |
Логический сдвиг вправо | Сдвигает биты вправо, вводя ноль слева | – | LSR |
Циклический сдвиг влево | Сдвигает биты влево, перенося старший бит в младший | RLC | – |
Циклический сдвиг вправо | Сдвигает биты вправо, перенося младший бит в старший | RRC | – |
Циклический сдвиг влево с переносом | Сдвигает биты влево, включая бит переноса | RAL | ROL |
Циклический сдвиг вправо с переносом | Сдвигает биты вправо, включая бит переноса | RAR | ROR |
Прочие | Двойной сдвиг для работы с 16-битными числами | DAD H | – |
Примеры использования команд
- Intel 8080 – RAL (Циклический Сдвиг Влево С Переносом)
- Пример: Если аккумулятор содержит
10101010
и флаг переноса установлен (1
), команда RAL преобразует аккумулятор в01010101
, а старший бит1
переместится в флаг переноса.
- Motorola 6800 – ASR (Арифметический Сдвиг Вправо)
- Пример: Если аккумулятор содержит
10101010
, команда ASR преобразует его в11010101
. Это сохраняет знак числа (старший бит).
- Motorola 6800 – LSR (Логический Сдвиг Вправо)
- Пример: Если аккумулятор содержит
10101010
, команда LSR преобразует его в01010101
. Старший бит заменяется на0
.
Эти операции сдвига важны для манипуляций с битами, арифметических вычислений и эффективного использования памяти в программировании микропроцессоров.