Professional Documents
Culture Documents
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)
10
Kashifshafqat25@yahoo.com
contd…
1. The AND Instruction:
– May be used to clear specific destination bits
while preventing the others.
Kashifshafqat25@yahoo.com 11
ExaMplE:
• Clear the sign bit of AL while leaving the
other bits unchanged.
Solution:
AND AL,7Fh
Kashifshafqat25@yahoo.com 12
contd…
The OR Instruction:
May be used to SET specific destination bits
while preventing the others.
Kashifshafqat25@yahoo.com 13
ExaMplE:
• Set the MSB and LSB of AL while
preserving the other bits.
• Solution:
OR AL,81h
Kashifshafqat25@yahoo.com 14
contd…
The XOR Instruction:
– May be used to Complement specific
destination bits while preventing the others.
Kashifshafqat25@yahoo.com 15
ExaMplE
• Change the sign bit of DX.
• Solution:
XOR DX,8000h
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