Описание:
Вычитание содержимого регистра-источника и содержимого флага переноса (С) из регистра Rd, размещение результата в регистре назначения Rd.
Операция:
(i) | Rd <-- Rd - Rr - C | ||
Синтаксис | Операнды: | Счетчик программ: | |
(i) | SBC Rd,Rr | 0 < d < 31, 0 < r < 31 | PC <- PC + 1 |
16-разрядный код операции:
0000 | 10rd | dddd | rrrr |
Булевы выражения регистра статуса (SREG)
|
||||||||
|
H: | Rd3*Rr3+Rr3*R3+R3*Rd3 Устанавливается если есть заем из бита 3, в ином случае очищается |
S: | NЕV, Для проверок со знаком |
V: | Rd7*Rr7*R7+Rd7*Rr7*R7 Устанавливается если в результате операции образуется переполнение дополнения до двух, в ином случае очищается |
N: | R7 Устанавливается если в результате установлен MSB, в ином случае очищается |
Z: | R7*R6*R5*R4*R3*R2*R1*R0*Z Предшествовавшее значение остается неизменным если результат равен нулю, в ином случае очищается |
C: | Rd7*Rr7+Rr7*R7+ R7*Rd7 Устанавливается если абсолютное значение содержимого Rr плюс предшествовавший перенос больше, чем абсолютное значение Rd, в ином случае очищается |
R: | (Результат)соответствует Rd после выполнения команды |
Пример:
; Вычесть r1 : r0 из r3 : r2 sub r2, r0 ; Вычесть младший байт sbc r3, r1 ; Вычесть старший байт с переносом
Слов: 1 (2 байта)
Циклов: 1