4. 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
5. 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
8. 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
9. EffEcts on flags
• SF,ZF,PF reflects the result
• AF is undefined
• CF,OF = 0
9
Kashifshafqat25@yahoo.com
10. 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
11. 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.
11Kashifshafqat25@yahoo.com
12. ExaMplE:
• Clear the sign bit of AL while leaving the
other bits unchanged.
Solution:
AND AL,7Fh
Where 7Fh (0111 1111) is the mask.
12Kashifshafqat25@yahoo.com
13. 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.
13Kashifshafqat25@yahoo.com
14. ExaMplE:
• Set the MSB and LSB of AL while
preserving the other bits.
• Solution:
OR AL,81h
Where 81h (1000 0001) is the mask.
14Kashifshafqat25@yahoo.com
15. 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.
15Kashifshafqat25@yahoo.com
16. ExaMplE
• Change the sign bit of DX.
• Solution:
XOR DX,8000h
Where 80h ( 1000 0000 ) is the mask.
16Kashifshafqat25@yahoo.com
17. 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
17Kashifshafqat25@yahoo.com
18. testing a register FOr ZerO:
•
CMP CX,0
Is same like :
OR CX,CX
;Sets ZF=1 if CX is 0
18Kashifshafqat25@yahoo.com
19. 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
19Kashifshafqat25@yahoo.com
20. 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
20Kashifshafqat25@yahoo.com
22. 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
22Kashifshafqat25@yahoo.com
23. 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
23Kashifshafqat25@yahoo.com
24. 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
24Kashifshafqat25@yahoo.com
25. 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
25Kashifshafqat25@yahoo.com
26. 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
26Kashifshafqat25@yahoo.com
27. 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
27Kashifshafqat25@yahoo.com
28. 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