MSP430 - Команда RRA

RRA[.W] Арифметическая ротация вправо
RRA.B Арифметическая ротация вправо
Синтаксис RRA dst или RRA.W dst
RRA.B dst
Операция MSB -> MSB, MSB -> MSB-1, … LSB+1 >- LSB, LSB -> С
Описание Операнд получателя сдвигается вправо на одну позицию, как показано на рис.3.16.
Старший бит MSB сдвигается сам в себя и в бит MSB-1, бит LSB+1 сдвигается в младший бит LSB.

Операнд получателя – арифметический сдвиг вправо
Рис.3-16 Операнд получателя – арифметический сдвиг вправо

Биты статуса N: Устанавливается, если результат отрицательный; сбрасывается, если положительный
Z: Устанавливается, если результат «0», в противном случае сбрасывается
C: Загружается из LSB
V: Сбрасывается
Биты режима Биты OSCOFF, CPUOFF и GIE не изменяются
Пример Содержимое регистра R5 сдвигается вправо на одну позицию. Старший бит MSB сохраняет старое значение. Эта операция эквивалентна арифметическому делению на 2.
RRA   R5       ; R5/2 -> R5 

;
;Содержимое R5 умножается на 0.75 (0.5 + 0.25).

PUSH  R5       ; Временное сохранение R5 с помощью стека
RRA   R5       ; R5х0.5 -> R5
ADD   @SP+,R5  ; R5х0.5 + R5 = 1.5хR5 -> R5
RRA   R5       ; (1.5хR5)х0.5 = 0.75хR5 -> R5
…
Пример Содержимое младшего байта регистра R5 сдвигается вправо на одну позицию. Старший бит MSB сохраняет старое значение. Эта операция эквивалентна арифметическому делению на 2. RRA.B R5 ; R5/2 -> R5: операция производится только с ; младшим байтом, старший байт R5 сброшен RRA.B R5 ; R5?0.5 -> R5 PUSH.B R5 ; R5?0.5 -> TOS RRA.B @SP ; TOS?0.5 = 0.5?R5?0.5 = 0.25?R5 -> TOS ADD.B @SP+,R5 ; R5?0.5 + R5?0.25 = 0.75?R5 -> R5 …






© 2008 Электроника для начинающих | Programming V.Lasto | Povered by Nano-CMS | Designer S.Gordi