Команда SBCI - вычесть непосредственное значение с переносом
Описание:
Вычитание константы и содержимого флага переноса (С) из содержимого регистра, размещение результата в регистре назначения Rd.
Операция:
(i) |
Rd <-- Rd - K - C |
|
Синтаксис |
Операнды: |
Счетчик программ: |
(i) |
SBCI Rd,K |
0 < d < 31, 0 < K < 255 |
PC <- PC + 1 |
16-разрядный код операции:
Булевы выражения регистра статуса (SREG)
H: |
Rd3*K3+K3*R3+R3*Rd3
Устанавливается если есть заем из бита 3, в ином случае очищается |
S: |
NЕV, Для проверок со знаком |
V: |
Rd7*K7*R7+Rd7*K7*R7
Устанавливается если в результате операции образуется переполнение
дополнения до двух, в ином случае очищается |
N: |
R7
Устанавливается если в результате установлен MSB, в ином случае
очищается |
Z: |
R7*R6*R5*R4*R3*R2*R1*R0*Z
Предшествовавшее значение остается неизменным если результат
равен нулю, в ином случае очищается |
C: |
Rd7*K7+K7*R7+ R7*Rd7
Устанавливается если абсолютное значение константы плюс
предшествовавший перенос больше, чем абсолютное значение Rd, в ином
случае очищается |
R: |
(Результат)соответствует Rd после выполнения команды |
Пример:
; Вычесть $4F23 из r17 : r16
subi r16, r23 ; Вычесть младший байт
sbci r17, $4F ; Вычесть старший байт с переносом
Слов: 1 (2 байта)
Циклов: 1
|