В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > AVR > Команды
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Команда ASR - Арифметически сдвинуть вправо

Описание:

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

Операция:

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


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


1001 010d dddd 0101

Булевы выражения регистра статуса (SREG)
I T H S V N Z C
- - - Ы Ы Ы Ы Ы


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

Пример:

ldi r16, $10 ; Загрузить десятичное значение 16 в r16
asr r16      ; r16=r16 / 2
ldi r17, $FC ; Загрузить -4 в r17
asr r17      ; r17=r17 / 2

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

Циклов: 1