Intel 80C186XL Computer Hardware User Manual


 
2-21
OVERVIEW OF THE 80C186 FAMILY ARCHITECTURE
2.2.1.3 Bit Manipulation Instructions
There are three groups of instructions for manipulating bits within bytes and words. These three
groups are logical, shifts and rotates. Table 2-6 lists the bit manipulation instructions and their
functions.
Logical instructions include the Boolean operators NOT, AND, OR and exclusive OR (XOR), as
well as a TEST instruction. The TEST instruction sets the flags as a result of a Boolean AND op-
eration but does not alter either of its operands.
Individual bits in bytes and words can be shifted either arithmetically or logically. Up to 32 shifts
can be performed, according to the value of the count operand coded in the instruction. The count
can be specified as an immediate value or as a variable in the CL register. This allows the shift
count to be a supplied at execution time. Arithmetic shifts can be used to multiply and divide bi-
nary numbers by powers of two. Logical shifts can be used to isolate bits in bytes or words.
Table 2-5. Arithmetic Interpretation of 8-Bit Numbers
Hex Bit Pattern
Unsigned
Binary
Signed
Binary
Unpacked
Decimal
Packed
Decimal
07 0 0 0 0 0 1 1 1 7 +7 7 7
89 1 0 0 0 1 0 0 1 137 –119 invalid 89
C5 1 1 0 0 0 1 0 1 197 –59 invalid invalid
Table 2-6. Bit Manipulation Instructions
Logicals
NOT “Not” byte or word
AND “And” byte or word
OR “Inclusive or” byte or word
XOR “Exclusive or” byte or word
TEST “Test” byte or word
Shifts
SHL/SAL Shift logical/arithmetic left byte or word
SHR Shift logical right byte or word
SAR Shift arithmetic right byte or word
Rotates
ROL Rotate left byte or word
ROR Rotate right byte or word
RCL Rotate through carry left byte or word
RCR Rotate through carry right byte or word