Программирование на JAVA

Этим арифметический сдвиг вправо отличается от логического, в котором осво­бождающиеся разряды всегда заполняются нулями. Пример арифметического сдвига вправо (SAR) приведен на рис. 6.2, в. Арифметический сдвиг влево ничем не отличается от логического.


а


б


в

Рис. 6.2. Команды логического и арифметического сдвига: логический сдвиг влево, SHL R0,2 (а); логический сдвиг вправо, SHR R0,2 (б); арифметический сдвиг вправо, SAR R0,2 (в)

Существует также четыре команды циклического сдвига:

ROL - циклический сдвиг влево;

ROR - циклический сдвиг вправо;

RCL - циклический сдвиг влево с установкой флага CF;

RCR - циклический сдвиг вправо с установкой флага CF.

Компьютер поддерживает две вер­сии циклического сдвига вправо и две версии циклического сдвига влево. В пер­вой версии разряды операнда просто циклически сдвигаются, а во второй в сдви­ге участвует еще и флаг CF. Примеры всех четырех операций циклического сдвига приведены на рис. 6.3.



Рис. 6.3. Команды циклического сдвига: влево без переноса, ROL R0,2 (a); влево с пере-носом, RLC R0,2 (б); вправо без переноса, ROR R0,2 (a); вправо с переносом, RRC R0,2 (г)


<< назад вперед >>