Команда ROL - cдвинуть влево через перенос
Описание:
Сдвиг всех битов Rd на одно место влево. Флаг переноса (С) регистра состояния (SREG) смещается на место бита 0 регистра Rd. Бит 7 смещается во флаг переноса (C).
Операция:
|
|
|
Синтаксис |
Операнды: |
Счетчик программ: |
(i) |
ROL Rd |
0 < d < 31 |
PC <- PC + 1 |
16-разрядный код операции:
Булевы выражения регистра статуса (SREG)
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
|