0% found this document useful (0 votes)
69 views20 pages

Shift and Rotate Instructions: Group

The document discusses shift and rotate instructions in computer architecture. It explains logical versus arithmetic shifts and covers instructions like SHL, SHR, ROL, ROR, SHLD and SHRD. Examples are provided to demonstrate how each instruction works and the value changes it produces. Applications of shifts and rotations discussed include fast multiplication through shifting, displaying binary values, and isolating bit strings.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views20 pages

Shift and Rotate Instructions: Group

The document discusses shift and rotate instructions in computer architecture. It explains logical versus arithmetic shifts and covers instructions like SHL, SHR, ROL, ROR, SHLD and SHRD. Examples are provided to demonstrate how each instruction works and the value changes it produces. Applications of shifts and rotations discussed include fast multiplication through shifting, displaying binary values, and isolating bit strings.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Universty of mosul

Elecrtical engineering
rd
3 power and machine

Shift and Rotate Instructions

Preapere students:
Osama mekdad hamid
Zaid mohamed
Group :(2)

Shift and Rotate Instructions


Computer Organization and Assembly Language

Computer Science Department

National University of Computer and Emerging Sciences


Islamabad
Shift and Rotate Instructions
 Logical vs Arithmetic Shifts
 SHL Instruction
 SHR Instruction
 SAL and SAR Instructions
 ROL Instruction
 ROR Instruction
 RCL and RCR Instructions
 SHLD/SHRD Instructions
Logical vs Arithmetic Shifts
 A logical shift fills the newly created bit position with zero:

CF

• An arithmetic shift fills the newly created bit


position with a copy of the number’s sign bit:

CF
SHL Instruction
 The SHL (shift left) instruction performs a logical left shift
on the destination operand, filling the lowest bit with 0.

CF

• Operand types for SHL: SHL destination,count


SHL reg,imm8
(Same for all shift and
SHL mem,imm8 rotate instructions)
SHL reg,CL
SHL mem,CL
Fast Multiplication
Shifting left 1 bit multiplies a number by 2
mov dl,5 Before: 00000101 =5
shl dl,1
After: 00001010 = 10

Shifting left n bits multiplies the operand by 2n


For example, 5 * 22 = 20
mov dl,5
shl dl,2 ; DL = 20
SHR Instruction
 The SHR (shift right) instruction performs a logical right
shift on the destination operand. The highest bit position is
filled with a zero.

CF

Shifting right n bits divides the operand by 2n


mov dl,80
shr dl,1 ; DL = 40
shr dl,2 ; DL = 10
SAL and SAR Instructions
 SAL (shift arithmetic left) is identical to SHL.
 SAR (shift arithmetic right) performs a right arithmetic
shift on the destination operand.

CF

An arithmetic shift preserves the number's sign.


mov dl,-80
sar dl,1 ; DL = -40
sar dl,2 ; DL = -10
Your turn . . .
Indicate the hexadecimal value of AL after each shift:

mov al,6Bh ; 01101011


shr al,1 a. 35h
shl al,3 b. A8h
mov al,8Ch ; 10001100
sar al,1 c. C6h
sar al,3 d. F8h
ROL Instruction
 ROL (rotate) shifts each bit to the left
 The highest bit is copied into both the Carry flag and
into the lowest bit
 No bits are lost

mov al,11110000b
rol al,1 ; AL = 11100001b

mov dl,3Fh
rol dl,4 ; DL = F3h
ROR Instruction
 ROR (rotate right) shifts each bit to the right
 The lowest bit is copied into both the Carry flag and into the
highest bit
 No bits are lost

mov al,11110000b
ror al,1 ; AL = 01111000b

mov dl,3Fh
ror dl,4 ; DL = F3h
Your turn . . .
Indicate the hexadecimal value of AL after each
rotation:

mov al,6Bh ; 01101011


ror al,1 B5h
rol al,3 ADh
RCL Instruction
 RCL (rotate carry left) shifts each bit to the left
 Copies the Carry flag to the least significant bit
 Copies the most significant bit to the Carry flag

CF

clc ; CF = 0
mov bl,88h ; CF,BL = 0 10001000b
rcl bl,1 ; CF,BL = 1 00010000b
rcl bl,1 ; CF,BL = 0 00100001b
RCR Instruction
 RCR (rotate carry right) shifts each bit to the right
 Copies the Carry flag to the most significant bit
 Copies the least significant bit to the Carry flag
CF

stc ; CF = 1
mov ah,10h ; CF,AH = 1 00010000b
rcr ah,1 ; CF,AH = 0 10001000b
Your turn . . .
Indicate the hexadecimal value of AL after each
rotation:
stc
mov al,6Bh
rcr al,1 a. B5h
rcl al,3 b. AEh
SHLD Instruction
 Shifts a destination operand a given number of bits to
the left
 The bit positions opened up by the shift are filled by the
most significant bits of the source operand
 The source operand is not affected
 Syntax:
SHLD destination, source, count
 Operand types:

SHLD reg16/32, reg16/32, imm8/CL


SHLD mem16/32, reg16/32, imm8/CL
SHLD Example
Shift wval 4 bits to the left and replace its lowest 4
bits with the high 4 bits of AX:

.data
wval AX
wval WORD 9BA6h
Before: 9BA6 AC36
.code
mov ax,0AC36h After: BA6A AC36
shld wval,ax,4
SHRD Instruction
 Shifts a destination operand a given number of bits to the
right
 The bit positions opened up by the shift are filled by the
least significant bits of the source operand
 The source operand is not affected
 Syntax:
SHRD destination, source, count
 Operand types:

SHRD reg16/32, reg16/32, imm8/CL


SHRD mem16/32, reg16/32, imm8/CL
SHRD Example
Shift AX 4 bits to the right and replace its highest 4
bits with the low 4 bits of DX:

mov ax,234Bh
mov dx,7654h Before: 7654 234B
shrd ax,dx,4
After: 7654 4234
Shift and Rotate Applications
 Shifting Multiple Doublewords
 Binary Multiplication
 Displaying Binary Bits
 Isolating a Bit String

You might also like