Синтаксис | SBB приемник,источник |
Машинный код | 1C ib — SBB AL,imm8 1D iw — SBB AX,imm16 1D id — SBB EAX,imm32 80 /3 ib — SBB r/m8,imm8 81 /3 iw — SBB r/m16,imm16 81 /3 id — SBB r/m32,imm32 83 /3 ib — SBB r/m16,imm8 83 /3 ib — SBB r/m32,imm8 18 /r — SBB r/m8,r8 19 /r — SBB r/m16,r16 19 /r — SBB r/m32,r32 1A /r — SBB r8,r/m8 1B /r — SBB r16,r/m16 1B /r — SBB r32,r/m32 |
Описание | Вычитание с заёмом. |
Действие | Вычитание двух целочисленных двоичных операндов с учётом флага CF. |
Флаги | OF=r SF=r ZF=r AF=r PF=r CF=r |
Команда SBB дополняет команду SUB при выполнени вычитания чисел частями. Состояние флага CF представляет собой заём от предыдущего вычитания. Приёмник = приёмник — (источник + CF)
Пример использования команды SBB для вычитания операнда размером в слово (2 байта) из двойного слова (4 байта):
1 2 3 4 5 6 7 8 9 | mov ax, word[a] ;ax = 0x680 mov bx, word[a+2] ;bx = 0x7700 sub ax,[b] ;0x680 - 0x43F2 = 0xC28E sbb bx,0 ;0x7700 - (0 + 1) = 0x76FF ;ax:bx = 0xC28E76FF ;------ Переменные ------ a dd 0x77000680 b dw 0x43F2 |