<<<    Index    >>>
6-34
INSTRUCTION SET SUMMARY
6.8.BIT AND BYTE INSTRUCTIONS
The bit and byte instructions operate on bit or byte strings. They are divided into four groups:
•
Bit test and modify instructions.
•
Bit scan instructions.
•
Byte set on condition.
•
Test.
6.8.1.Bit Test and Modify Instructions
The bit test and modify instructions (refer to Table 6-3) operate on a single bit, which can be in
an operand. The location of the bit is specified as an offset from the least significant bit of the
operand. When the processor identifies the bit to be tested and modified, it first loads the CF flag
with the current value of the bit. Then it assigns a new value to the selected bit, as determined
by the modify operation for the instruction. 
6.8.2.Bit Scan Instructions
The BSF (bit scan forward) and BSR (bit scan reverse) instructions scan a bit string in a source
operand for a set bit and store the bit index of the first set bit found in a destination register. The
bit index is the offset from the least significant bit (bit 0) in the bit string to the first set bit. The
BSF instruction scans the source operand low-to-high (from bit 0 of the source operand toward
the most significant bit); the BSR instruction scans high-to-low (from the most significant bit
toward the least significant bit).
6.8.3.Byte Set on Condition Instructions
The SETcc (set byte on condition) instructions set a destination-operand byte to 0 or 1,
depending on the state of selected status flags (CF, OF, SF, ZF, and PF) in the EFLAGS register.
The suffix (cc) added to the SET mnemonic determines the condition being tested for. For
example, the SETO instruction tests for overflow. If the OF flag is set, the destination byte is set
to 1; if OF is clear, the destination byte is cleared to 0. Appendix B, EFLAGS Condition Codes
lists the conditions it is possible to test for with this instruction.
Table 6-3.  Bit Test and Modify Instructions
Instruction
Effect on CF Flag
Effect on Selected Bit
BT (Bit Test)
CF flag 
<
 Selected BitNo effect
BTS (Bit Test and Set)
CF flag 
<
 Selected BitSelected Bit 
<
 1
BTR (Bit Test and Reset)CF flag 
<
 Selected BitSelected Bit 
<
 0
BTC (Bit Test and Complement)CF flag 
<
 Selected BitSelected Bit 
<
 NOT (Selected Bit)
<<<    Index    >>>