<<<    Index    >>>
6-26
INSTRUCTION SET SUMMARY
The CBW instruction copies the sign (bit 7) of the byte in the AL register into every bit position
of the upper byte of the AX register. The CWDE instruction copies the sign (bit 15) of the word
in the AX register into every bit position of the high word of the EAX register.
The CWD instruction copies the sign (bit 15) of the word in the AX register into every bit posi-
tion in the DX register. The CDQ instruction copies the sign (bit 31) of the doubleword in the
EAX register into every bit position in the EDX register. The CWD instruction can be used to
produce a doubleword dividend from a word before a word division, and the CDQ instruction
can be used to produce a quadword dividend from a doubleword before doubleword division.
6.3.2.3.MOVE AND CONVERT
The MOVSX (move with sign extension) and MOVZX (move with zero extension) instructions
move the source operand into a register then perform the sign extension.
The MOVSX instruction extends an 8-bit value to a 16-bit value or an 8- or 16-bit value to 32-bit
value by sign extending the source operand, as shown in Figure 6-5. The MOVZX instruction
extends an 8-bit value to a 16-bit value or an 8- or 16-bit value to 32-bit value by zero extending
the source operand.
6.4.BINARY ARITHMETIC INSTRUCTIONS
The binary arithmetic instructions operate on 8-, 16-, and 32-bit numeric data encoded as signed
or unsigned binary integers. Operations include the add, subtract, multiply, and divide as well
as increment, decrement, compare, and change sign (negate). The binary arithmetic instructions
may also be used in algorithms that operate on decimal (BCD) values. 
6.4.1.Addition and Subtraction Instructions
The ADD (add integers), ADC (add integers with carry), SUB (subtract integers), and SBB
(subtract integers with borrow) instructions perform addition and subtraction operations on
signed or unsigned integer operands.
The ADD instruction computes the sum of two integer operands. 
The ADC instruction computes the sum of two integer operands, plus 1 if the CF flag is set. This
instruction is used to propagate a carry when adding numbers in stages. 
The SUB instruction computes the difference of two integer operands. 
The SBB instruction computes the difference of two integer operands, minus 1 if the CF flag is
set. This instruction is used to propagate a borrow when subtracting numbers in stages.
6.4.2.Increment and Decrement Instructions
The INC (increment) and DEC (decrement) instructions add 1 to or subtract 1 from an unsigned
integer operand, respectively. A primary use of these instructions is for implementing counters.
<<<    Index    >>>