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
◄Summary► ◄Key► ◄Example► ◄Up► ◄Contents► ◄Index► ◄Back►
────────────────────────────────────────────────────────────────────────────
1101000w mod,TTT*,r/m disp (0, 1, or 2)
─────────────────┬───────────────────────────┬──────────────────────────────
SAR reg,1 │ sar di,1 │ 88/86 2
│ sar cl,1 │ 286 2
│ │ 386 3
│ │ 486 3
─────────────────┼───────────────────────────┼──────────────────────────────
SAL reg,1 │ shr dh,1 │ 88/86 2
SHL reg,1 │ shl si,1 │ 286 2
SHR reg,1 │ sal bx,1 │ 386 3
│ │ 486 3
─────────────────┼───────────────────────────┼──────────────────────────────
SAR mem,1 │ sar count,1 │ 88/86 15+EA (W88=23+EA)
│ │ 286 7
│ │ 386 7
│ │ 486 4
─────────────────┼───────────────────────────┼──────────────────────────────
SAL mem,1 │ sal WORD PTR m32[0],1 │ 88/86 15+EA (W88=23+EA)
SHL mem,1 │ shl index,1 │ 286 7
SHR mem,1 │ shr unsign[di],1 │ 386 7
│ │ 486 4
─────────────────┴───────────────────────────┴──────────────────────────────
* TTT represents one of the following bit codes: 100 for SHL or SAL,
101 for SHR, or 111 for SAR.
1101001w mod,TTT*,r/m disp (0, 1, or 2)
─────────────────┬───────────────────────────┬──────────────────────────────
SAR reg,CL │ sar bx,cl │ 88/86 8+4n
│ sar dx,cl │ 286 5+n
│ │ 386 3
│ │ 486 3
─────────────────┼───────────────────────────┼──────────────────────────────
SAL reg,CL │ shr dx,cl │ 88/86 8+4n
SHL reg,CL │ shl di,cl │ 286 5+n
SHR reg,CL │ sal ah,cl │ 386 3
│ │ 486 3
─────────────────┼───────────────────────────┼──────────────────────────────
SAR mem,CL │ sar sign,cl │ 88/86 20+EA+4n (W88=28+EA+4n)
│ sar WORD PTR [bp+8],cl │ 286 8+n
│ │ 386 7
│ │ 486 4
─────────────────┼───────────────────────────┼──────────────────────────────
SAL mem,CL │ shr WORD PTR m32[2],cl │ 88/86 20+EA+4n (W88=28+EA+4n)
SHL mem,CL │ sal BYTE PTR [di],cl │ 286 8+n
SHR mem,CL │ shl index,cl │ 386 7
│ │ 486 4
─────────────────┴───────────────────────────┴──────────────────────────────
* TTT represents one of the following bit codes: 100 for SHL or SAL,
101 for SHR, or 111 for SAR.
11000000w mod,TTT*,r/m disp (0, 1, or 2) data (1)
─────────────────┬───────────────────────────┬──────────────────────────────
SAR reg,immed8 │ sar bx,5 │ 88/86 ──
│ sar cl,5 │ 286 5+n
│ │ 386 3
│ │ 486 2
─────────────────┼───────────────────────────┼──────────────────────────────
SAL reg,immed8 │ sal cx,6 │ 88/86 ──
SHL reg,immed8 │ shl di,2 │ 286 5+n
SHR reg,immed8 │ shr bx,8 │ 386 3
│ │ 486 2
─────────────────┼───────────────────────────┼──────────────────────────────
SAR mem,immed8 │ sar sign_count,3 │ 88/86 ──
│ sar WORD PTR [bx],5 │ 286 8+n
│ │ 386 7
│ │ 486 4
─────────────────┼───────────────────────────┼──────────────────────────────
SAL mem,immed8 │ shr mem16,11 │ 88/86 ──
SHL mem,immed8 │ shl unsign,4 │ 286 8+n
SHR mem,immed8 │ sal array[bx+di],14 │ 386 7
│ │ 486 4
─────────────────┴───────────────────────────┴──────────────────────────────
* TTT represents one of the following bit codes: 100 for SHL or SAL,
101 for SHR, or 111 for SAR.
-♦-