MSP430 система команд - Команда SBC
*SBC[.W] |
Вычитание заема/.NOT. переноса из получателя |
*SBC.B |
Вычитание заема/.NOT. переноса из получателя |
Синтаксис |
SBC dst или SBC.W dst SBC.B dst |
Операция |
dst + 0FFFFh + C -> dst dst + 0FFh + C -> dst |
Эмуляция |
SUBC #0,dst SUBC.B #0,dst |
Описание |
Бит переноса (С) прибавляется к операнду получателя минус один. Предыдущее содержимое получателя теряется. |
Биты статуса |
N: |
Устанавливается, если результат отрицательный; сбрасывается, если положительный |
Z: |
Устанавливается, если результат «0», в противном случае сбрасывается |
C: |
Устанавливается, если есть перенос из старшего бита MSB результата, сбрасывается в противном случае. Устанавливается в «1», если заема нет; сбрасывается, если заем есть. |
V: |
Устанавливается, если произошло арифметическое переполнение, в противном случае сбрасывается |
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
Пример |
Содержимое 16-разрядного счетчика, указанного в R13, вычитается из 32-разрядного счетчика, указанного в R12:
SUB @R13,0(R12) ; Вычитание LSD
SBC 2(R12) ; Вычитание переноса из MSD
|
Пример |
Содержимое 8-разрядного счетчика, указанного в R13, вычитается из 16-разрядного счетчика, указанного в R12:
SUB.B @R13,0(R12) ; Вычитание LSD
SBC.B 1(R12) ; Вычитание переноса из MSD
|
Примечание: реализация заема
Заем обрабатывается как операция .NOT. переноса:
Заем |
Бит переноса |
Да |
0 |
Нет |
1 |
|