You are on page 1of 29

Presentation Title

Your company information

1
Kashifshafqat25@yahoo.com
•Logic, Shift, and
Rotate
inStRuctionS

2
Kashifshafqat25@yahoo.com
pReSented

by
kaShif Shafqat(6905)
and
meeR jaLaL khan
3
Kashifshafqat25@yahoo.com
Logic inStRuction
• To manipulate individual bits
• Binary Value 0 treated as false
• Binary Value 1 treated as true

• AND
• OR
• XOR
• NOT
• TEST

4
Kashifshafqat25@yahoo.com
tRuth tabLe
a b a AND b a OR b a XOR b

0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

a NOT a
0 1
1 0

5
Kashifshafqat25@yahoo.com
exampLeS
• AND
1010 1010
1111 0000
1010 0000
• OR
1010 1010
1111 0000
1111 1010
6
Kashifshafqat25@yahoo.com
• XOR
1010 1010
1111 0000
0101 1010
• NOT
1010 1010
0101 0101

7
Kashifshafqat25@yahoo.com
Syntax
AND destination,source
OR destination,source
XOR destination,source
• Destination:
• Store result
• Can be a Register or Memory Location

• Source:
• May be a Constant,Register or Memory Location
• Memory to memory operation not allowed

8
Kashifshafqat25@yahoo.com
EffEcts on flags
• SF,ZF,PF reflects the result
• AF is undefined
• CF,OF = 0

9
Kashifshafqat25@yahoo.com
MasK
• To modify only selective bits in destination, we construct
a source bit pattern known as MASK
• T o choose mask , use following properties:
• b AND 1 = b
• b AND 0 = 0
• b OR 1 = 1
• b OR 0 = b
• b XOR 0 = b
• b AND 1 = ~b ( complement of b)

• Where b represents a bit (0 or 1)

10
Kashifshafqat25@yahoo.com
contd…
1. The AND Instruction:
– May be used to clear specific destination bits
while preventing the others.

– A 0 mask bit clears the corresponding


destination bit.
– A 1 mask bit preserves the corresponding
destination bit.

Kashifshafqat25@yahoo.com 11
ExaMplE:
• Clear the sign bit of AL while leaving the
other bits unchanged.
Solution:
AND AL,7Fh

Where 7Fh (0111 1111) is the mask.

Kashifshafqat25@yahoo.com 12
contd…
 The OR Instruction:
 May be used to SET specific destination bits
while preventing the others.

– A 1 mask bit sets the corresponding


destination bit.
– A 0 mask bit preserves the corresponding
destination bit.

Kashifshafqat25@yahoo.com 13
ExaMplE:
• Set the MSB and LSB of AL while
preserving the other bits.

• Solution:
OR AL,81h

Where 81h (1000 0001) is the mask.

Kashifshafqat25@yahoo.com 14
contd…
 The XOR Instruction:
– May be used to Complement specific
destination bits while preventing the others.

– A 1 mask bit complements the


corresponding destination bit.
– A 0 mask bit preserves the corresponding
destination bit.

Kashifshafqat25@yahoo.com 15
ExaMplE
• Change the sign bit of DX.

• Solution:
XOR DX,8000h

Where 80h ( 1000 0000 ) is the mask.

Kashifshafqat25@yahoo.com 16
Clearing a register:
MOV AX,0 ;machine code 3 bytes
OR
SUB AX,AX ;machine code 2 bytes
OR
XOR AX,AX ;machine code 2 bytes

Kashifshafqat25@yahoo.com 17
testing a register FOr ZerO:

CMP CX,0
Is same like :

OR CX,CX
;Sets ZF=1 if CX is 0

Kashifshafqat25@yahoo.com 18
nOt instruCtiOn
• Performs the one’s complement operation
on the destination.
• Syntax:
• NOT destination
• No effects on flags
• example:
Complement the bit in AX:
NOT AX

Kashifshafqat25@yahoo.com 19
sHiFt anD rOtate instruCtiOn:
• Shift the bits in destination operand by one
or more positions either to the left or right.
• sHiFt: Bit shifted out is lost
• rOtate: Bit shifted out from one end of
the destination operand is put back on the
other end.
• syntax:
• OPCODE destination,1
• OPCODE destination,CL
Kashifshafqat25@yahoo.com 20
sHiFt instruCtiOn:
 SHL Instruction (left shift)
 SHR Instruction (right shift)
 SAL Instruction (shift Arithmetic left)
 SAR Instruction (shift Arithmetic right)
 ROL Instruction (shift left)
 ROR Instruction (shift right)
 RCL Instruction (shift Carry left)
 RCR Instruction (shift Carry Right)
Kashifshafqat25@yahoo.com 21
sHl instruCtiOn (leFt sHiFt)
• The SHL (shift left) instruction performs a
logical left shift on the destination
operand, filling the lowest bit with 0.

• Operand types:
SHL reg,imm8
SHL mem,imm8
SHL reg,CL
SHL mem,CL
Kashifshafqat25@yahoo.com 22
sHr instruCtiOn (rigHt sHiFt)
• The SHR (shift right) instruction performs
a logical right shift on the destination
operand. The highest bit position is filled
with a zero.

mov dl,80
shr dl,1 ; DL = 40
shr dl,2 ; DL = 10

Kashifshafqat25@yahoo.com 23
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.

mov dl,-80
sar dl,1 ; DL = -40
sar dl,2 ; DL = -10

Kashifshafqat25@yahoo.com 24
ROL InstRuctIOn (shIft Left)
• 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
Kashifshafqat25@yahoo.com 25
ROR InstRuctIOn (shIft RIght)
• 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
Kashifshafqat25@yahoo.com 26
RcL InstRuctIOn (shIft caRRy Left)
• 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

clc ; CF = 0
mov bl,88h ; CF,BL = 0 10001000b
rcl bl,1 ; CF,BL = 1 00010000b
rcl bl,1 ; CF,BL = 0 00100001b
Kashifshafqat25@yahoo.com 27
RcR InstRuctIOn (shIft caRRy RIght)
• 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

stc ; CF = 1
mov ah,10h ; CF,AH = 00010000 1
rcr ah,1 ; CF,AH = 10001000 0

28
Kashifshafqat25@yahoo.com
29
Kashifshafqat25@yahoo.com

You might also like