Команды сдвига битов в регистреВ этих командах используется знакомая вам конструкция XXXXX F,D . Рассмотрим теорию работы команд сдвига. Различают две команды – "сдвиг вправо" и, соответственно, "сдвиг влево". Под сдвигом понимается смещение на один бит (на один разряд) содержимого регистра. Закономерен вопрос: а что появляется на освободившемся месте в регистре и куда девается вытесненный бит из регистра? Логично предположить, что место освободившегося бита занимает смещенный бит. Но это не так.
Для этого используется знакомый нам бит C (нулевой бит) в регистре STATUS. Именно через этот бит осуществляется сдвиг содержимого сдвигаемого регистра. На рисунках ниже схематично рассмотрен сдвиг.
Исходное состояние:
бит C (STATUS) =
|
1
|
1
|
0
|
1
|
1
|
0
|
1
|
0
|
0
|
|
|
|
|
|
|
|
|
Произведен сдвиг вправо:
бит C (STATUS) =
|
0
|
1
|
1
|
0
|
1
|
1
|
0
|
1
|
0
|
|
|
|
|
|
|
|
|
А теперь сделано два сдвига влево:
бит C (STATUS) =
|
1
|
0
|
1
|
1
|
0
|
1
|
0
|
0
|
1
|
|
|
|
|
|
|
|
|
Несложно представить ситуацию, когда регистр пуст (все биты равны нулю), а бит C в регистре STATUS равен единице, то с помощью команды сдвига элементарно просто организовать бегущую единицу, что может найти применение в конструкции бегущего огня.
СДВИГ ВПРАВО битов в регистре RRF F, D
СДВИГ ВЛЕВО битов в регистре RLF F, D
При работе с этой командой необходимо сначала определить состояние бита C в регистре STATUS, а затем выполнять соответствующий сдвиг. Это позволит вам однозначно знать содержимое сдвигаемого регистра после процедуры сдвига.
А теперь для своего блага перепишите на отдельный лист бумаги все рамки с описаниями команд друг за другом. Вам еще не раз потребуется к ним обратиться.
Дорогие друзья, обращаюсь к вам с просьбой. Если у вас есть человеческие примеры и понятные описания использования других команд – прошу не стесняться – вышлите на адрес ntv1978@mail.ru – ваша информация будет отражена на страницах этого проекта.
Всё, что вам не понятно или понятно иным образом, активно обсуждайте на форуме, руководствуясь принципом – "Не бывает глупых вопросов – бывают плохие учителя". Форум сделан специально для этого. Приглашаю всех к обсуждениям!
|