ХАНДЫФАР
Целочисленное вычитание с заимствованием
______SBB AL, imm8 - Вычитание с заимствованием imm8 из AL.
______SBB AX, imm16 - Вычитание с заимствованием imm16 из AX.
______SBB reg/mem8, imm8 - Вычитание с заимствованием imm8 из reg/mem8.
______SBB reg/mem16, imm16 - Вычитание с заимствованием imm16 из reg/mem16.
______SBB reg/mem16, imm8 - Вычитание с заимствованием знаково-расширенного imm8 из reg/mem16.
______SBB reg/mem8, reg8 - Вычитание с заимствованием reg8 из reg/mem8.
______SBB reg/mem16, reg16 - Вычитание с заимствованием reg16 из reg/mem16.
______SBB reg8, reg/mem8 - Вычитание с заимствованием reg/mem8 из reg8.
______SBB reg16, reg/mem16 - Вычитание с заимствованием reg/mem16 из reg16.
Добавляет исходный операнд (второй операнд) и флаг переноса (CF) и вычитает результат из операнда назначения (первый операнд). Результат вычитания сохраняется в целевом операнде. Целевым операндом может быть регистр или ячейка памяти; исходным операндом может быть непосредственное значение, регистр или ячейка памяти. Однако два операнда памяти не могут быть использованы в одной инструкции. Состояние флага CF представляет собой заимствование из предыдущего вычитания. Когда в качестве операнда используется непосредственное значение, оно расширяется по знаку до длины формата целевого операнда.
Инструкция sbb не проводит различия между знаковыми и беззнаковыми операндами. Вместо этого процессор оценивает результат для обоих типов данных и устанавливает флаги OF и CF для указания заимствования в знаковом или беззнаковом результате соответственно. Флаг SF указывает на знак знакового результата.
Инструкция sbb обычно выполняется как часть многобайтового или многословного вычитания, в котором за инструкцией sub следует инструкция sbb.
Эта инструкция может использоваться с префиксом lock, чтобы разрешить выполнение инструкции атомарно.
Флаги OF, SF, ZF, AF, PF и CF устанавливаются в соответствии с результатом.
В следующем примере мы выполним 32-битное вычитание. 65536 - 1 = 65535.