Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual page 1654

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

SBB—Integer Subtraction with Borrow
Opcode
1C ib
1D iw
1D id
80 /3 ib
81 /3 iw
81 /3 id
83 /3 ib
83 /3 ib
18 / r
19 / r
19 / r
1A / r
1B / r
1B / r
Description
Adds the source operand (second operand) and the carry (CF) flag, and subtracts the
result from the destination operand (first operand). The result of the subtraction is
stored in the destination operand. The destination operand can be a register or a
memory location; the source operand can be an immediate, a register, or a memory
location. The state of the CF flag represents a borrow from a previous subtraction.
When an immediate value is used as an operand, it is sign-extended to the length of
the destination operand format.
The SBB instruction does not distinguish between signed or unsigned operands.
Instead, the processor evaluates the result for both data types and sets the OF and CF
flags to indicate a borrow in the signed or unsigned result, respectively. The SF flag
indicates the sign of the signed result.
The SBB instruction is usually executed as part of a multibyte or multiword subtraction
in which a SUB instruction is followed by a SBB instruction.
Operation
DEST  DEST - (SRC + CF);
Flags Affected
The OF, SF, ZF, AF, PF, and CF flags are set according to the result.
Additional Itanium System Environment Exceptions
Itanium Reg Faults NaT Register Consumption Abort.
4:352
Instruction
Description
SBB AL, imm8
Subtract with borrow imm8 from AL
SBB AX, imm16
Subtract with borrow imm16 from AX
SBB EAX, imm32
Subtract with borrow imm32 from EAX
SBB r/m8,imm8
Subtract with borrow imm8 from r/m8
SBB r/m16,imm16
Subtract with borrow imm16 from r/m16
SBB r/m32,imm32
Subtract with borrow imm32 from r/m32
SBB r/m16,imm8
Subtract with borrow sign-extended imm8 from r/m16
SBB r/m32,imm8
Subtract with borrow sign-extended imm8 from r/m32
SBB r/m8,r8
Subtract with borrow r8 from r/m8
SBB r/m16,r16
Subtract with borrow r16 from r/m16
SBB r/m32,r32
Subtract with borrow r32 from r/m32
SBB r8,r/m8
Subtract with borrow r/m8 from r8
SBB r16,r/m16
Subtract with borrow r/m16 from r16
SBB r32,r/m32
Subtract with borrow r/m32 from r32
Volume 4: Base IA-32 Instruction Reference

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents