Команда ROL - cдвинуть влево через перенос

Описание:

Сдвиг всех битов Rd на одно место влево. Флаг переноса (С) регистра состояния (SREG) смещается на место бита 0 регистра Rd. Бит 7 смещается во флаг переноса (C).

Операция:

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


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


0001 11dd dddd dddd

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

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


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

Пример:

         rol   r15    ; Сдвигать влево
         brcs  oneenc ; Перейти если установлен перенос
         . . .
oneenc:  nop          ; Перейти по назначению (пустая операция)

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

Циклов: 1