Команды сдвига
Микропроцессоримеетчетырекомандыциклическогосдвига.Арифметическийи логический сдвиги формируются программно (рис. 7.1). RLC – циклический сдвиг содержимого аккумулятора на одну позицию влево. Младший бит и флаг С принимают значение вытесненного бита, т.е. бывшего старшего бита; RRC –циклический сдвиг содержимого аккумулятора на одну позицию вправо. Старший бит и флаг С принимают значение вытесненного бита, т.е. бывшего младшего бита; RAL – циклический сдвиг содержимого аккумулятора на одну позицию влево вместе с флагом C. В младшем бите устанавливается содержимое флага С; RAR – циклический сдвиг содержимого аккумулятора на одну позицию вправо вместе с флагом C. В старшем бите устанавливается содержимое флага С. Рис 1. Выполнение команд циклического сдвига Эти команды позволяют реализовать арифметический сдвиг, т.е. умножение и деление на два (рис. 1). Рисунок 7.2 ― Арифметический сдвиг вправо, реализующий деление на 2 Особенность арифметического сдвига состоит в неизменности старшего (знакового) разряда. Для этого необходимо выполнить циклический сдвиг влево, минуя флаг переноса, и двукратный циклический сдвиг вправо через флаг переноса. После второго сдвига в аккумуляторе восстанавливается исходное число, а во флаге переноса помещается его знак. Третий сдвиг формирует число, соответствующее арифметическому сдвигу вправо. Замечание. При арифметическом сдвиге вправо положительных чисел предельное значение составляет 00H; при сдвиге влево отрицательных чисел предельное значение составляет FFH = –1.
|