Команда LSR - логически сдвинуть вправо

Описание:

Сдвиг всех битов Rd на одно место вправо. Бит 7очищается. Бит 0 загружается во флаг переноса (С) регистра состояния (SREG). Эта команда эффективно делит на два величину без знака на два. Флаг переноса может быть использован для округления результата.

Операция:

(i)
 
  Синтаксис Операнды: Счетчик программ:
(i) LSR Rd 0 < d < 31 PC <- PC + 1


16-разрядный код операции:


1001 010d dddd 0110

Булевы выражения регистра статуса (SREG)

I T H S V N Z C
- - - Ы Ы 0 Ы Ы


S: NЕV, Для проверок со знаком
V: NЕC (Для N и C после сдвига)
Устанавливается если (N устанавливается и C очищается) или (N очищается а C устанавливается). В ином случае очищается (при наличии значений N и C после сдвига)
N: 0
Z: R7*R6*R5*R4*R3*R2*R1*R0
Устанавливается если результат $00, в ином случае очищается
C: Rd0
Устанавливается если перед сдвигом был установлен LSB регистра Rd, в ином случае очищается
R: (Результат)соответствует Rd после выполнения команды

Пример:

     add r0, r4 ; Сложить r4 с r0
     lsr r0     ; Разделить r0 на 2

Слов: 1 (2 байта)

Циклов: 1