SBB
(SuBtract with Borrow)
Вычитание с заемом
Схема команды: | sbb операнд_1,операнд_2 |
Назначение: целочисленное вычитание с учетом результата предыдущего вычитания командами sbb и sub (по состоянию флага переноса cf).
Алгоритм работы:
выполнить сложение операнд_2=операнд_2+(cf);
выполнить вычитание операнд_1=операнд_1-операнд_2;
Состояние флагов после выполнения команды:
11 | 07 | 06 | 04 | 02 | 00 |
OF | SF | ZF | AF | PF | CF |
r | r | r | r | r | r |
Применение:
Команда sbb используется для выполнения вычитания старших частей значений многобайтных операндов с учетом возможного предыдущего заема при вычитании младших частей значений этих операндов.
;выполнить вычитание 64-битных значений: vich_1-vich_2 vich_1 dd 2 dup (0) vich_2 dd 2 dup (0) rez dd 2 dup (0) ... ;ввести значения в поля vich_1 и vich_2: ;младший байт по младшему адресу ... mov eax,vich_1 sub eax,vich_2 ;вычесть младшие половинки чисел mov rez,eax ;младшая часть результата mov eax,vich_1+4 sbb eax,vich_2+4 ;вычесть старшие половинки чисел mov rez+4,eax ;старшая часть результата |
См. также: урок 8, Приложение 7 и команды