Описание:
Вычитание непосредственного значения (0-63) из пары регистров и размещение результата в паре регистров. Команда работает с четырьмя верхними парами регистров, удобна для работы с регистрами указателями.
Операция:
(i) | Rdh:Rdl <-- Rdh:Rdl - K | ||
Синтаксис | Операнды: | Счетчик программ: | |
(i) | SBIW Rdl,K | dlО{24,26,28,30}, 0 < K <63 | PC <- PC + 1 |
16-разрядный код операции:
1001 | 0111 | KKdd | KKKK |
Булевы выражения регистра статуса (SREG)
|
||||||||
|
S: | NЕV, Для проверок со знаком |
V: | Rdh7*R15 Устанавливается если в результате операции образуется переполнение дополнения до двух, в ином случае очищается |
N: | R15 Устанавливается если в результате установлен MSB, в ином случае очищается |
Z: | R15*R14*R13*R12*R11*R10*R9*R8*R7*R6*R5*R4*R3*R2*R1*R0 Устанавливается если результат $0000, в ином случае очищается |
C: | R15*Rdh7 Устанавливается если абсолютное значение константы K больше абсолютного значения содержимого регистра Rd, в ином случае очищается |
R: | (Результат) соответствует Rdh:Rdl после выполнения команды (Rdh7-Rdh0 = R15-R8, Rdl7-Rdl0 = R7-R0) |
Пример:
sbiw r24, 1 ; Вычесть 1 из r25:r24 sbiw r28, 63 ; Вычесть 63 из Y указателя (r29 : r28)
Слов: 1 (2 байта)
Циклов: 2