Описание:
Вычитание единицы - 1 - из содержимого регистра Rd и размещение результата в регистре назначения Rd. Флаг переноса регистра статуса данной командой не активируется, что позволяет использовать команду DEC использовать при реализации счетчика циклов для вычислений с повышенной точностью. При обработке чисел без знаков за командой могут выполняться переходы BREQ и BRNE. При обработке значений в форме дополнения до двух допустимы все учитывающие знак переходы.
Операция:
(i) | Rd<-- Rd - 1 | ||
Синтаксис | Операнды: | Счетчик программ: | |
(i) | DEC Rd | 0 < d < 31 | PC <- PC + 1 |
16-разрядный код операции:
1001 | 010d | dddd | 1010 |
Булевы выражения регистра статуса (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