Команда DEC - декрементировать
Описание:
Вычитание единицы - 1 - из содержимого регистра Rd и размещение результата в регистре назначения Rd. Флаг переноса регистра статуса данной командой не активируется, что позволяет использовать команду DEC использовать при реализации счетчика циклов для вычислений с повышенной точностью. При обработке чисел без знаков за командой могут выполняться переходы BREQ и BRNE. При обработке значений в форме дополнения до двух допустимы все учитывающие знак переходы.
Операция:
(i) |
Rd<-- Rd - 1 |
|
|
Синтаксис |
Операнды: |
Счетчик программ: |
(i) |
DEC Rd |
0 < d < 31 |
PC <- PC + 1 |
16-разрядный код операции:
Булевы выражения регистра статуса (SREG)
S: |
NЕV, Для проверок со знаком |
V: |
R7*R6*R5*R4*R3*R2*R1*R0
Устанавливается если в результате получено переполнение дополнения до
двух, в ином случае очищается. Переполнение дополнения до двух будет если
и только если перед операцией содержимое Rd было $80. |
N: |
R7 Устанавливается если в результате установлен MSB, в ином случае очищается |
Z: |
R7*R6*R5*R4*R3*R2*R1*R0
Устанавливается если результат $00, в ином случае очищается |
R: |
(Результат)соответствует Rd после выполнения команды |
Пример:
ldi r17, $10 ; Загрузить константу в r17
loop: add r1, r2 ; Сложить r2 с r1
dec r17 ; Уменьшить на 1 r17
brne loop ; Перейти если r17 <> 0
nop ; Продолжать (пустая операция)
Слов: 1 (2 байта)
Циклов: 1
|