Команды SUB и SBB - это команды целочисленного вычитания. Команда SUB просто производит вычитание значение одного операнда из значения другого. Команда SBB производит вычитаение с заемом. То есть кроме простого вычитания одного значения из другого из него еще вычитается значение флага CF. Эта команда используется при арифметических операциях с большими числами, когда при вычитании из младшей части числа произошел заем бита (что отражается во флаге CF) и при вычитании из старшей части числа, этот заемный бит надо учесть.

 

Команда SUB
Синтаксис: SUB op1,op2
Операнды: op1 - r/m8, r/m16, r/m32
op2 - r/m8, r/m16, r/m32, i8, i16, i32
Назначение: Целочисленное вычитание
Процессор: 8086+
Флаги: Флаги OF, SF, ZF, AF, PF, CF устанавливаются в соответствии с результатом.
Комментарий: Команда SUB вычитает второй операнд из первого.
Ограничения: Операнды не могут одновременно быть ячейками памяти, один из операндов должен быть регистром.
Примеры:
sub	ax,bx
Команда SBB
Синтаксис: SBB op1,op2
Операнды: op1 - r/m8, r/m16, r/m32
op2 - r/m8, r/m16, r/m32, i8, i16, i32
Назначение: Целочисленное вычитание с заемом
Процессор: 8086+
Флаги: Флаги OF, SF, ZF, AF, PF, CF устанавливаются в соответствии с результатом.
Комментарий: Команда SUB вычитает из первого операнда второй операнд и флаг переноса CF.
Ограничения: Операнды не могут одновременно быть ячейками памяти, один из операндов должен быть регистром.
Примеры:
sub	ax,bx
sbb	dx,cx