Assembly Language Help (alang.hlp) (
Table of Contents;
Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
SHL Instruction
◄Detail► ◄Key► ◄Example► ◄Up► ◄Contents► ◄Index► ◄Back►
────────────────────────────────────────────────────────────────────────────
Title: Shift Flags: O D I T S Z A P C
═════════════════
Syntax: SHL dest,count ± ± ± ? ± ±
SAL dest,count
SHR dest,count
SAR dest,count
See also: SHL Operator, SHR Operator, ROL,
MUL, DIV, SHLD, AND, OR,
XOR, NOT
Description:
Shifts the bits in the destination operand the number of times
specified by the source operand. SAL and SHL shift the bits left;
SAR and SHR shift right.
With SHL, SAL, and SHR, the bit shifted off the end of the operand
is copied into the carry flag and the leftmost or rightmost bit
opened by the shift is set to 0. With SAR, the bit shifted off the
end of the operand is copied into the carry flag and the leftmost
bit opened by the shift retains its previous value (thus
preserving the sign of the operand). SAL and SHL are synonyms.
On the 8088 and 8086, the source operand can be either CL or 1. On
the 80186-80486 processors, the source operand can be CL or an
8-bit constant. On the 80186-80486 processors, shift counts larger
than 31 are masked off, but on the 8088 and 8086, larger shift
counts can be performed despite the inefficiency involved.
The overflow flag is only modified by single-bit variations of the
instruction; for multiple-bit variations, it is undefined.
-♦-